poj 3356 AGTC dp 最短编辑距离

来源:互联网 发布:aes256算法 java实现 编辑:程序博客网 时间:2024/05/17 23:50
这个题目没什么好说的了
算法导论上有原题,然后注意的就是初始化的问题,我wa了,还有就是多组测试数据

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
const int inf=99999999;
const int maxn=1111;
int n,m;
char a[maxn],b[maxn];
int dp[maxn][maxn];
int main()
{
    while(scanf("%d %s %d%s",&n,&a[1],&m,&b[1])!=EOF)
    {
       dp[1][1]=1-(a[1]==b[1]);
       for(int i=1;i<=n;i++)
       dp[i][0]=i;
       for(int i=1;i<=m;i++)
       dp[0][i]=i;
    for(inti=1;i<=n;i++)
    for(intj=1;j<=m;j++)
    {
       dp[i][j]=inf;
      dp[i][j]=min(dp[i][j],dp[i-1][j-1]+1-(a[i]==b[j]));
       dp[i][j]=min(dp[i][j],dp[i][j-1]+1);
       dp[i][j]=min(dp[i][j],dp[i-1][j]+1);
    }
//   printf("%d\n",dp[2][0]);
   printf("%d\n",dp[n][m]);
   memset(dp,0,sizeof(dp));
    }
    return 0;
}


原创粉丝点击