UVA 11584 Partitioning by Palindromes

来源:互联网 发布:淘宝网天猫超市批发 编辑:程序博客网 时间:2024/06/08 07:48
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm> #include<cmath>#include<vector>using namespace std;const int maxn=1000+5;int P[maxn][maxn];string s;int d[maxn];  // d(i) 1~i 的最小回文串的数目 int judge(int i,int j){if(P[i][j]!=-1) return P[i][j];if(s[i]==s[j]) return P[i][j]=j-i<=1?1:judge(i+1,j-1);else return P[i][j]=0; }int main(){int n;cin>>n;while(n--){cin>>s;memset(P,-1,sizeof(P));for(int i=0;i<s.length();i++){d[i]=(i?d[i-1]:0)+1;for(int j=0;j<i;j++)if(judge(j,i)) d[i]=min(d[i],(j?d[j-1]:0)+1);}//for(int i=0;i<s.length();i++) cout<<d[i]<<' ';//cout<<endl;cout<<d[s.length()-1]<<endl;}return 0;}

0 0
原创粉丝点击