hdu2476 String painter

来源:互联网 发布:老黄牛qq群发软件 编辑:程序博客网 时间:2024/06/15 18:58

动态规划。

#include<cstdio>#include<cstring>#include<string.h>#include<algorithm>#define maxn 101#define maxc 26using namespace std;char src[maxn];char dst[maxn];int f[maxn][maxn][maxc+1];int main(){while(scanf("%s%s",src,dst)==2){int n=strlen(src);for(int begin=0;begin<n;begin++){for(int letter=0;letter<maxc;letter++){if(letter+'a'==dst[begin])f[begin][begin+1][letter]=0;elsef[begin][begin+1][letter]=1;}if(src[begin]==dst[begin])f[begin][begin+1][maxc]=0;elsef[begin][begin+1][maxc]=1;}for(int len=2;len<=n;len++){for(int begin=0;begin+len<=n;begin++){int end=begin+len;for(int letter=0;letter<=maxc;letter++){int &cur=f[begin][end][letter];cur=f[begin+1][end][dst[begin]-'a'];if(letter!=dst[begin]-'a')cur++;for(int delimeter=begin+1;delimeter<end;delimeter++){int tmp=f[begin][delimeter][letter]+f[delimeter][end][letter];if(tmp<cur)cur=tmp;}}}}printf("%d\n",f[0][n][maxc]);}return 0;}