uva 11584 Partitioning by Palindromes | dp
来源:互联网 发布:中商惠民员工被优化 编辑:程序博客网 时间:2024/05/16 02:13
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=465&page=show_problem&problem=2631
算是刚开始认真做dp吧,觉得dp真的好神奇,而且在做之前的省赛题(浙江)时,总能发现一两道是dp。虽说这题是在看了别人的思路下写出来的,不过对我而言,还是益处很大的,写写博客,加深印象!
题意:
给你一个字符串,让你求出最小的回文段数。
思路:
dp[i]表示在第i个字母时加入时最小的回文段数。
可以用这个方程进行转移:dp[i] = min(dp[i],dp[j-1]+1);j的范围[1,i];
意思是:如果从j到i是回文,那么dp[i]的回文段数等于j-1前的回文段数加上1;
AC代码:
<span style="font-size:18px;">#include <cstdio>#include <cstring>#include <iostream>#include <string>using namespace std;const int P = 1005;char tmp[P];int dp[P];bool Charge(int i,int j){int mid = (i+j)/2;while(j<=mid){if(tmp[j++] != tmp[i--])return 0;}return 1;}int main(){int T;cin>>T;while(T--){scanf("%s",tmp+1);memset(dp,-1,sizeof(dp));dp[0] = 0;int len = strlen(tmp+1);for(int i = 1;i <= len;i++){for(int j = 1;j <= i;j++){if(dp[i] == -1)dp[i] = dp[i-1]+1;if(Charge(i,j)){dp[i] = min(dp[i],dp[j-1]+1);}}}cout<<dp[len]<<endl;}return 0;}</span>
*其实感觉是UVa数据有点弱,这个如果换作变态点数据,可能就TLE了。后来把字符串(1...len)预处理判断回文,但时间跑得更久了...
0 0
- uva 11584 - Partitioning by Palindromes (dp)
- uva 11584 - Partitioning by Palindromes(简单dp)
- UVA 11584 - Partitioning by Palindromes(基础dp)
- uva 11584 - Partitioning by Palindromes(DP)
- UVA 11584 - Partitioning by Palindromes DP
- uva 11584 - Partitioning by Palindromes(dp)
- uva 11584 Partitioning by Palindromes | dp
- uva 11584 Partitioning by Palindromes dp
- Partitioning by Palindromes - UVa 11584 dp
- 【uva-11584】Partitioning by Palindromes(dp)
- Uva 11584 - Partitioning by Palindromes dp
- UVA 11584 Partitioning by Palindromes DP
- UVA - 11584 Partitioning by Palindromes DP
- UVA 11584-Partitioning by Palindromes(DP)
- uva 11584 Partitioning by Palindromes 线性dp
- UVa 11584 - Partitioning by Palindromes(DP)
- UVa 11584:Partitioning by Palindromes(DP)
- UVA 题目11584 - Partitioning by Palindromes(DP)
- linux万能解压脚本
- 一维加噪信号的平滑处理(2)
- JDK源码研究PriorityQueue(优先队列)
- 批处理解决实际问题1——将目录下所有文件(*.cpp)分别创建同名文件夹并移入其中
- Java环境变量配置
- uva 11584 Partitioning by Palindromes | dp
- iPhone开发应用中关于UITableView详细教程
- hdu 2601 An easy problem
- hdu2544 最短路
- Android学习笔记(一)
- ClassLoader解读
- IOS请求WEB应用的方法
- 简谈设计模式的几个原则
- 通过分析 JDK 源代码研究 TreeMap 红黑树算法实现