码迷,mamicode.com
首页 > 其他好文 > 详细

Generating Palindromes LightOJ - 1033

时间:2017-10-27 22:29:18      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:ring   name   tps   net   https   eof   clu   strlen   not   

Generating Palindromes LightOJ - 1033

题意:添加最少的字符使得给出的字符串成为回文串。输出添加的字符数。

方法:常规区间dp。ans[i][j]表示使得ans[i][j]成为回文串最少添加的字符数。如果i和j位置的字符相等那么ans[i][j]=ans[i+1][j-1],否则要么左边去掉一个,要么右边去掉一个,就是$min(get(l,r-1),get(l+1,r))+1$。

错误记录:和cf607b以及poj1141搞混。那两道题不需要添加字符成为回文串,只需要配对。也就是多个回文串并列也可以,不一定要整个回文串。这道题不一样。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 char a[201];
 6 int n,y,T,TT;
 7 int ans[201][201];
 8 int get(int l,int r)
 9 {
10     if(l>=r)    return 0;
11     if(ans[l][r]!=0x3f3f3f3f)    return ans[l][r];
12     if(a[l]==a[r])    return ans[l][r]=get(l+1,r-1);
13     return ans[l][r]=min(get(l,r-1),get(l+1,r))+1;
14 }
15 int main()
16 {
17     scanf("%d",&T);
18     for(TT=1;TT<=T;TT++)
19     {
20         scanf("%s",a+1);
21         memset(ans,0x3f,sizeof(ans));
22         printf("Case %d: %d\n",TT,get(1,strlen(a+1)));
23     }
24     return 0;
25 }

Generating Palindromes LightOJ - 1033

标签:ring   name   tps   net   https   eof   clu   strlen   not   

原文地址:http://www.cnblogs.com/hehe54321/p/loj-1033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!