您的位置:首页 > 其它

UVA 11584 Partitioning by Palindromes

2018-03-30 09:53 281 查看
#include<bits/stdc++.h>
using namespace std;
string s;
int x,y,i,j,len,cas,d[1010];
bool a[1010][1010];
int main(){
scanf("%d\n",&cas);
while(cas--){
getline(cin,s);
len=s.size();
memset(a,0,sizeof(a));
memset(d,0x3f3f3f3f,sizeof(d));
for(i=1;i<len;i++){
a[i][i]=1;
if(s[i-1]==s[i])a[i][i+1]=1;
}
a[len][len]=1;
for(i=len;i>=1;i--)
for(j=i+2;j<=len;j++)
if(s[i-1]==s[j-1])
a[i][j]=a[i+1][j-1];
d[0]=0;
for(i=1;i<=len;i++)
for(j=1;j<=i;j++)
if(a[j][i])
d[i]=min(d[i],d[j-1]+1);
printf("%d\n",d[len]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: