d[i]表示从1~i位最小回文子串数(下标按从1开始),d[i]=min(d[i],d[j]+1|j+1到i为回文串)。
正确性证明:考虑添加第i位字母,有两种情况:
1.第i位自成一回文串。
2.第j+1位到第i位为一回文串。
枚举所有1、2情况即可求得d[i]。

#include<iostream>
#include<cstring>
using namespace std;
int n,d[1005];
bool p[1005][1005];
int main()
{string s;cin>>n;for(int i=1;i<=n;i++){cin>>s;int l=s.length();for(int j=0;j<l;j++){for(int k=0;k<=l;k++)if(s[j+k]==s[j-k]&&j+k<l&&j-k>=0)p[j-k+1][j+k+1]=1;elsebreak;}for(int j=0;j<l-1;j++)if(s[j]==s[j+1])for(int k=0;k<=l;k++)if(s[j-k]==s[j+1+k]&&j-k>=0&&j+1+k<l)p[j-k+1][j+k+2]=1;elsebreak;memset(d,0x3f3f3f,sizeof(d));d[0]=0;for(int j=1;j<=l;j++)for(int k=1;k<=j;k++)if(p[k][j])d[j]=min(d[j],d[k-1]+1);cout<<d[l]<<endl;memset(p,0,sizeof(p));}return 0;
}

UVA 11584 Partitioning by Palindromes相关推荐

  1. UVA 11584 Partitioning by Palindromes (字符串区间dp)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  2. UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)

    题意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串,字符串长度不超过1000. 分析: 1.dp[i]为字符0~i划分成的最小回文串的个数. 2.dp[j] = Min(dp[j ...

  3. UVA 11584 Partitioning by Palindromes 动态规划 入门

    这个题目的大意就是,给你一个字符串,然后让你求出最少的回文数.我开始傻逼了,写了一个o(n^3)的算法,结果老超时.然后略看了别人的题解,才知道有个如此的转移方程. f[i+1]=min(f[j]+1 ...

  4. UVA 11584—— Partitioning by Palindromes

    题意:给定一个串,然后问最少可以分割成多少个回文串. 思路:简单dp,dp[i]=min(dp[j]+1,1<j<=i),两次循环扫一遍即可,考察dp的思想. code: #include ...

  5. uva 11584——Partitioning by Palindromes

    题意:给定一个字符串,把该字符串划分为最少的回文串. 思路:dp,到达i点的回文串长度都存起来,那么dp[i]=min(以i为结尾的最短的回文串长度). code: #include <bits ...

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

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

  7. uva11584 Partitioning by Palindromes

    题目大意: 给出一个字符串,把他划分成尽量少的回文串,问最少的回文串个数 /*先预处理所有回文子串dp[i]表示字符1~i划分成的最小回文串的个数 */ #include<iostream> ...

  8. 回文串 --- 动态dp UVA 11584

    题目链接: https://cn.vjudge.net/problem/34398/origin 本题的大意其实很简单,就是找回文串,大致的思路如下: 1. 确定一个回文串,这里用到了自定义的chec ...

  9. uva 11584 - 字符串 dp

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

  10. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

最新文章

  1. Oracle初始化参数含义
  2. CentOS6中怎样将jdk1.7升级到1.8
  3. wpf Command Binding
  4. imx6的kernel3.4.15启动流程
  5. 重磅:微信小程序开放公测了!
  6. SpringBoot+Vue表单文件上传
  7. SpringCloud学习之网关gateway
  8. java url 协议_Java自定义URL协议
  9. asp.net core的TagHelper简单使用
  10. 《剑指Offer》面试题6 重建二叉树——勘误
  11. 基于单片机的人体心率脉搏检测系统
  12. html5创新创业模板,大学生创新创业计划书模板完整版.doc
  13. VSCODE Vue插件
  14. Ipad IOS 蓝牙键盘快捷键
  15. 用esp8266远程定时开机
  16. 如何快速剪辑音频,简单易上手
  17. 自然数、整数、有理数、实数、无理数
  18. Centos7系统安装yum遇到的问题failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try. http:
  19. Apache日志分割——rotatelogs、cronolog
  20. 高性能(无需判重)批量生成优惠券码方案

热门文章

  1. 张驰咨询:六西格玛技术在提高抽油机井系统效率中的应用
  2. kafka生产者实例配置参数
  3. 微信内置浏览器直接下载APP的解决方法
  4. 1、蛋白质二级结构预测方法
  5. 此处纸薄不经墨,待入章中再续貂
  6. 关闭compactos_windows 10 CompactOS最节省空间的安装系统
  7. 中易浏览器(enjoyie) v3.0.1.15 完整绿色版 免费
  8. 通过谷歌身份验证器实现双保险认证(1)
  9. 清华园那沁人心脾的秋天
  10. 谷歌浏览器打不开的解决方法