题意:给出一个字符串,要求进行最少次数的分割,使得每一个字符串被分割成多个回文串

解法:要记录的子状态就是前i个字符串被分割成回文子串所需要的最少次数 那么我们发现状态i可以从前面任意一个状态j转移过来,条件是j+1~i是一个回文串

那么状态方程就是 dp[i]=min(dp[i],dp[j]+1)

#include<string.h>
#include<limits.h>
#include<stdio.h>
#include<iostream>
using namespace std;
char ss[11111];
int h[11111],s[11111],mp[1111][1111];
int main(){int _;scanf("%d",&_);while(_--){scanf("%s",ss+1);int n=(int)strlen(ss+1);memset(h,0,sizeof h);memset(s,0,sizeof s);memset(mp,0,sizeof mp);for(int i=1;i<=n;++i){for(int l=i,r=i;l>=1&&r<=n;l--,r++){if(ss[l]==ss[r])mp[l][r]=1;else break;}}for(int i=2;i<=n;++i)for(int r=i,l=i-1;l>=1&&r<=n;l--,r++){if(ss[l]==ss[r])mp[l][r]=1;else break;}//        for(int i=1;i<=n;++i){
//            for(int j=1;j<=n;++j)
//                printf("%d ",mp[i][j]);
//            printf("\n");
//        }s[0]=0;for(int r=1;r<=n;++r){s[r]=INT_MAX;for(int l=1;l<=r;l++){if(mp[l][r]){s[r]=min(s[r],s[l-1]+1);}}}
//        for(int i=1;i<=n;++i)printf("%d ",s[i]);
//        printf("\n");printf("%d\n",s[n]);}return 0;
}

Uva 11584 线性DP相关推荐

  1. uva 11584 - 字符串 dp

    题目链接 一个长度1000的字符串最少划分为几个回文字符串 ---------------------------------------------------------------------- ...

  2. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  3. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

    整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...

  4. 洛谷P2401 不等数列(线性DP)

    本题使用的是线性DP.就是DP数组难以思考,这里我直接给出 dp[i][j]:表示 1 ~ i 这 i 个数 , 其中j 个 " < " 有几种方法 假设我们已经把 n - ...

  5. CodeForces - 1096D Easy Problem(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串,每个字符都有一个权值,现在需要删除权值和最少的字符,满足字符串中不再含有子序列"hard" 题目分析:线性dp,但我不会,看着题解写的 ...

  6. CodeForces - 456C Boredom(线性dp)

    题目链接:点击查看 题目大意:给出一个由n个数字组成的数列,现在给出规则是,每次选择数列中的一种数字 x,选择后的贡献为 x,不过操作后会删除掉所有数值为 x + 1 和 x - 1 的数,现在问如何 ...

  7. POJ - 1050 To the Max(最大连续子段和,线性dp)

    题目链接:点击查看 题目大意:给出一个n*n的矩阵,每个点都有一个权值,现在要从中选取一个子矩阵要求权值和最大,问这个最大权值和是多少 题目分析:因为是要求子矩阵的权值和最大的问题,我们可以直接维护一 ...

  8. 牛客 - 「火」皇家烈焰(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串表示扫雷游戏,其中: 0:这个格子没有烈焰,且其左右两个格子均没有烈焰 1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰 2:这个格子没有烈焰,且其左右 ...

  9. CH 5102 Mobile Service(线性DP)

    CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...

  10. 动态规划 —— 线性 DP

    [概述] 线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题.区间DP等有固定的模板. 线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式 ...

最新文章

  1. 今晚直播 | 来自《简明的 TensorFlow 2》作者,Google开发者专家的分享
  2. easyui datagrid 多表头数据错位_表格数据检索(二)
  3. 江苏省2013年会计从业资格考试《会计基础》全真模拟试题
  4. matplotlib 旋转刻度_Matplotlib数据可视化:文本与坐标轴
  5. rest_framework中的url注册器,分页器,响应器
  6. 【C语言重点难点精讲】C语言中的重要符号
  7. Android 9 带着 AI 来了,为什么我们还停留在 6?
  8. c语言实现的optics算法,基于深度学习的光学系统设计方法
  9. [POJ1664] 放苹果 (动态规划,组合数学)
  10. POJ 3415 Common Substrings(后缀数组 + 单调栈)题解
  11. CPU Usage (C#) 测试
  12. 【手写数字识别】基于matlab GUI模板匹配手写数字识别【含Matlab源码 094期】
  13. 固态硬盘开卡软件_SATAFIRM S11 MSATA固态硬盘刷固件
  14. 转载 刘鹏老师 计算广告学 人大笔记
  15. word图片另存为变黑色_五种方法可将Word文档转换成图片文件
  16. 电大c语言2017年1月,电大1253+C语言程序设计A(1月)小抄参考
  17. 【前端三剑客二】CSS手术刀剖析第二篇
  18. 高通SDX12:USB3.0驱动初始化代码分析
  19. 如何用手机控制电脑或电脑控制手机?
  20. MySQL 文件结构、逻辑架构及 sql 执行流程分析作者:Java后端架构

热门文章

  1. sqlite只能用于android系统,android SQLite
  2. R包安装--以4.1.2安装DMwR为例
  3. 微信小程序开发VIP商城项目
  4. Verilog仿真器
  5. Redis热点Key发现及常见解决方案总结
  6. 一点点读懂cpufreq(二)
  7. php博客 程序 论文,php博客系统论文 (附加程序代码)
  8. 失物招领小程序_可查询失物、可了解换乘,京港地铁今日上线微信小程序
  9. echarts实现词云图表,及参数配置详解
  10. golang--channal与select