Generating Palindromes LightOJ - 1033

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Generating Palindromes LightOJ - 1033相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

uva 401.Palindromes

javascript JS:Palindromes

HDU1544 Palindromes回文

[UVa] Palindromes(401)

CodeChef Tree Palindromes

USACO 1.5 Prime Palindromes