本题vjudge链接

  • 题意:给你一个字符串,让你求分割成最少回文串的数量,比如racecar最少就是1,fastcar就是7,aaadbccb就是3

  • 思路:

    • 说实话,不放到动态规划的专题我可能都不知道怎么做
    • 提供一种比较好想的思路:记一个长度为lll的字符串最大的分割数量就是lll,如果说第lll个字符和第l−1l - 1l−1个字符拼成的字符串是回文串,则分割数量就可以减少,即将l−1l - 1l−1 ~ lll的字符串看成一个字符,固分割数减一,以此类推往前找能够看成单个字符的回文串来求出长度为lll的字符串的最小的分割数
    • 设dp[i]为从0~i的字符串的最小分割数,当j + 1 ~ i是回文串时,其分割数就为dp[j] + 1,设isp[i][j]表示字符串下标从i~j是否为回文串,状态转移方程为
      dp[i]=min{dp[j]+1},isp[j+1][i]=truedp[i] = min\{dp[j] + 1\},\ \ isp[j + 1][i] = true dp[i]=min{dp[j]+1},  isp[j+1][i]=true
    • 代码如下
    #include <cstdio>
    #include <cstring>
    #include <algorithm>using namespace std;int dp[1005], len;
    bool isp[1005][1005];
    char str[1005];void check() {len = strlen(&str[1]) + 1;for (int i = 1; i < len; i++) { isp[i][i] = true; }for (int i = 1; i + 1 < len; i++) { isp[i][i + 1] = (str[i] == str[i + 1]); }for (int i = 2; i < len; i++) {for (int j = 1; j + i < len; j++) {if (str[j] == str[j + i] && isp[j + 1][j + i - 1]) isp[j][j + i] = true;}}
    }void solve(){memset(isp, 0, sizeof isp);memset(dp, 0x3f, sizeof dp);scanf("%s", &str[1]);check();dp[0] = 0;for (int i = 1; i < len; i++) {for (int j = i; j > 0; j--) {if(!isp[j][i]) continue;dp[i] = min(dp[i], dp[j - 1] + 1);}}printf("%d\n", dp[len - 1]);
    }int main() {
    #ifndef ONLINE_JUDGEfreopen("D:/MYCODE/vsCode-c/test.in", "r", stdin);freopen("D:/MYCODE/vsCode-c/test.out", "w", stdout);
    #endifint T;scanf("%d", &T);while(T--) solve();return 0;
    }
    

原地址

UVA11584 Partitioning by Palindromes(动态规划)相关推荐

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

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

  2. uva11584 Partitioning by Palindromes

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

  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. UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)

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

  5. UVA 11584—— Partitioning by Palindromes

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

  6. uva 11584——Partitioning by Palindromes

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

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

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

  8. c语言dp状态转移方程,[总结-动态规划]经典DP状态设定和转移方程

    马上区域赛,发现DP太弱,赶紧复习补上. #普通DP CodeForces-546D Soldier and Number Game 筛法+动态规划 待补 UVALive-8078 Bracket S ...

  9. 《算法竞赛入门经典——训练指南》第一章相关内容

    #<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...

  10. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

最新文章

  1. poj2186(强连通分量)
  2. 吃透这套架构体系,三年成为架构师!
  3. java struts2 安全漏洞 devMode 简介
  4. oracle中判断空,Oracle中判断空游标的方法
  5. poj 2388 排序的水题
  6. [Java] 蓝桥杯ADV-158 算法提高 新建Microsoft Word文档
  7. 道一声java技术_java提高篇(二)-理解java的三大特性之继承 - Java 技术驿站-Java 技术驿站...
  8. html中如何通过微信加朋友,微商必看:微信添加好友的13种方法和技巧
  9. 论文记录-2018-A survey on image tampering and its detection in real-world photos
  10. 批处理 b站视频批量合并
  11. 【考研英语语法】一般现在时练习题
  12. 链路监控框架pinpoint
  13. vim 删除行首指定数量字符
  14. 戴口罩的这一年,AI产业如何“重启、重塑、重构”?
  15. Android 新建module时的ByteCode Level
  16. 英语作文计算机国际会议开幕词,有关英语会议开场致辞范文
  17. fedora下关掉那讨厌的beep beep beep
  18. 深圳市半导体行业协会会长周生明率队赴加速科技调研
  19. 加载图片出错时,加载其他图片
  20. 【Effective C++】item20: Prefer pass-by-reference-to-const to pass-by-value

热门文章

  1. Nature Microbiology | 王璋/陈荣昌/周宏伟-慢阻肺病呼吸道菌群-宿主互作机制
  2. 微信V3版本支付下单、查询支付订单状态、订单退款接入正式项目中并引入策略模式实操
  3. 保研之路——哈深计算机预推免
  4. squid高性能代理缓存服务器
  5. Spring使用纯注解配置事务管理并实现简单的增删查改以及模拟转账功能
  6. 网络安全 01 - Session Fixation
  7. Python crawler 豆瓣电影排行榜评分
  8. 主图指标,原创极强黄点,将军柱和黄金柱都是3日的
  9. Dockerfile的编写
  10. Android源代码分析--Preference之自动通话录音