ACE-Top

导航

1033 Generating Palindromes

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>  
 4 #define N 10010
 5 using namespace std;
 6 
 7 int dp[500][500];
 8 char a[N],b[N];
 9 int main ()
10 {
11     int T,ca,a_len,i,j;
12           scanf("%d",&T);
13         for(ca=1;ca<=T;ca++)
14         {
15             scanf("%s",&a);
16             a_len=strlen(a);
17             for(i=0,j=a_len-1;i<a_len;i++,j--)
18             b[j]=a[i];
19             memset(dp,0,sizeof(dp));
20             int max1=0;
21             for(i=0;i<a_len;i++)
22             for(j=0;j<a_len;j++)
23             {
24                 if(a[i]!=b[j])
25                 dp[i][j]=max(dp[i][j-1],dp[i-1][j]);    
26                 else
27                 dp[i][j]=dp[i-1][j-1]+1;
28             }
29             printf("Case %d: %d\n",ca,a_len-dp[a_len-1][a_len-1]);
30         }
31 }

 

posted on 2013-08-23 17:20  ACE-Top  阅读(156)  评论(0编辑  收藏  举报