UVa11584 - Partitioning by Palindromes(区间DP)
2013-08-08 16:22
363 查看
题目大意
给定一个小写字母组成的字符串S,你的任务是划分成尽量少的回文串题解
方程就是dp[j]=min(dp[i-1]+1)(i<=j,s[i..j]是回文串)代码:
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; #define MAXN 1005 char s[MAXN]; int dp[MAXN]; bool check(int l,int r) { int len=(l+r)/2; for(int i=l; i<=len; i++) if(s[i]!=s[r-i+l]) return false; return true; } int main() { int n; scanf("%d",&n); while(n--) { scanf("%s",s+1); int len=strlen(s+1); for(int i=1; i<=len+1; i++) dp[i]=1005; dp[0]=0; for(int i=1; i<=len; i++) { for(int j=1; j<=i; j++) if(check(j,i)) dp[i]=min(dp[i],dp[j-1]+1); } printf("%d\n",dp[len]); } return 0; }
相关文章推荐
- UVA-11584-Partitioning by Palindromes(区间DP 最小回文串数量)
- Uva 11584 Partitioning by Palindromes(区间dp)
- UVA 11584 Partitioning by Palindromes 区间dp
- 区间DP UVA 11584 Partitioning by Palindromes
- 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 (LIS/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】【简单dp】Partitioning by Palindromes【给定一个字符串, 问最少分为几部分可使各部分均为回文串】