Uva 11584 Partitioning by Palindromes(区间dp)
2015-06-05 23:05
375 查看
http://https://uva.onlinejudge.org/external/115/11584.pdf
题意:
给出t个字符串,求每个字符串至少有多少个回文
解题思路:
用dp[ i ]来记录到i为止,当前最少的回文数
两个for循环套在一起,形成一个区间(i,j),如果这个区间是一个回文,那么就比较dp[ i ]与dp[ j-1 ] + 1,取小的那一个
题意:
给出t个字符串,求每个字符串至少有多少个回文
解题思路:
用dp[ i ]来记录到i为止,当前最少的回文数
两个for循环套在一起,形成一个区间(i,j),如果这个区间是一个回文,那么就比较dp[ i ]与dp[ j-1 ] + 1,取小的那一个
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define inf 0x3f3f3f3f char str[1005]; int dp[1005]; bool judge(int x, int y) { while(x>=y) { if(str[x]!=str[y]) return false; x--; y++; } return true; } int main() { int t; cin>>t; while(t--) { scanf("%s",str+1); int len = strlen(str+1); dp[0] = 0; for(int i=1;i<=len;i++) { dp[i] = inf; for(int j=i;j>=1;j--) { if(judge(i,j)) dp[i] = min(dp[i],dp[j-1]+1); } } cout<<dp[len]<<endl; } return 0; }
相关文章推荐
- 2015-06-05
- 多项式相加
- WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换
- OpenCSP开源程序解析之OPENCSP_Hash.cpp
- JAVA 大数在acm中的应用
- Base64 Base32 Base16全家桶
- codeforces C. Divisibility by Eight (纯属无聊来发一篇博客)
- ct任务添加与中控机批量后台操作
- hdu 5256 序列变换 (LIS变形)
- python虚拟环境的使用
- 操作系统--存储管理的任务
- 操作系统--存储管理的任务
- 初探字符集和字符集编码
- Python函数式编程实践
- CentOS5.2安装mysql用163yum源安装具体步骤。
- 欢迎使用CSDN-markdown编辑器
- Android之drawable state各个属性详解 .
- tomcat服务器解析(五)-- Poller
- 2015-05-29
- 【Android】ListView 优化