首页 > 其他 > 详细

GDUT 校赛02 dp回文串

时间:2015-03-22 16:19:20      阅读:231      评论:0      收藏:0      [点我收藏+]

技术分享

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<queue>
 7 using namespace std;
 8 const int maxn=5001;
 9 int n,m,t;
10 short dp[maxn][maxn];
11 char s[maxn];
12 int main()
13 {
14     int i,j,k;
15     #ifndef ONLINE_JUDGE
16     freopen("1.in","r",stdin);
17     #endif
18     scanf("%d",&t);
19     while(t--)
20     {
21         int len=0;
22         scanf("%d",&len);
23         scanf("%s",s);
24         for(i=0;i<len;i++)  dp[i][i]=1;
25         for(k=1;k<len;k++)
26         {
27             for(i=0;i+k<=len;i++)
28             {
29                 int j=k+i;
30                 if(s[i]!=s[j])  dp[i][j]=dp[i+1][j-1];
31                 else dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1;
32             }
33         }
34         printf("%d\n",dp[0][len-1]);
35     }
36     return 0;
37 }

GDUT 校赛02 dp回文串

原文:http://www.cnblogs.com/cnblogs321114287/p/4357364.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!