- 距离
- 2015-10-06 21:59:57 @
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define maxn 2001
char a[maxn],b[maxn];
int k,f[maxn][maxn];
int min(int x,int y,int z){
if(x>y) x=y;
if(x>z) x=z;
return x;
}
int main(){
scanf("%s",a);
scanf("%s",b);
scanf("%d",&k);
for(int i=0;i<strlen(a);i++)
for(int j=0;j<strlen(b);j++){
f[i+1][0]=k*(i+1);
f[0][j+1]=k*(j+1);
f[i+1][j+1]=min(f[i][j]+abs(a[i]-b[j]),f[i][j+1]+k,f[i+1][j]+k);
}
printf("%d\n",f[strlen(a)][strlen(b)]);
system("pause");
return 0;
}
2 条评论
-
Jerryzrl LV 7 @ 2016-01-26 10:48:39
6666666666666666666666666
-
2015-10-06 23:00:38@
strlen需要遍历整个字符串。
- 1