您的位置:首页 > 其它

LightOJ 1033 - Generating Palindromes(dp)

2015-11-10 13:00 309 查看
题目链接:LightOJ 1033 - Generating Palindromes

代码

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxn = 105;

int N, dp[maxn][maxn];
char s[maxn], t[maxn];

int solve () {
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++)
if (s[i] == t[j])
dp[i][j] = dp[i-1][j-1] + 1;
else
dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
}
return dp

;
}

int main () {
int cas;
scanf("%d", &cas);
for (int kcas = 1; kcas <= cas; kcas++) {
scanf("%s", s + 1);
N = strlen(s + 1);
for (int i = 1; i <= N; i++)
t[i] = s[N-i+1];
printf("Case %d: %d\n", kcas, N - solve());
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: