记录编号 352448 评测结果 AAAAAAAAAA
题目名称 字符串的距离 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 0.185 s
提交时间 2016-11-17 10:28:21 内存使用 15.71 MiB
显示代码纯文本
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int l1,l2,i,j,f[2010][2010],k;
char a[2010],b[2010];
int  min(int a,int b,int c)
{
	int d;
	d=a<b?a:b;
	return d<c?d:c;
}
int main()
{
	freopen("blast.in","r",stdin);
	freopen("blast.out","w",stdout);
	scanf("%s",a+1);
	scanf("%s",b+1);
	scanf("%d",&k);
	l1=strlen(a+1);
	l2=strlen(b+1);
	memset(f,0x3f3f3f3f,sizeof(f));
	f[0][0]=0;
	for(i=1;i<=l1;i++)
		f[i][0]=i*k;
	for(i=1;i<=l2;i++)
		f[0][i]=i*k;
	for(i=1;i<=l1;i++)
		for(j=1;j<=l2;j++)
			f[i][j]=min(f[i-1][j]+k,f[i][j-1]+k,f[i-1][j-1]+abs(a[i]-b[j]));
	printf("%d",f[l1][l2]);
	return 0;
}