以下是第一篇tj代码(经过一些无伤大雅的改动 。。。之所以改,是因为它过不了编译):
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<bits/stdc++.h>
using namespace std;
int A[2010][2010];
string s1 , s2;
int len1,len2;
int k;
void dp()
{
for(int i=1;i<=len1;i++)
{
for(int j=1;j<=len2;j++)
{
A[i][j]=min(A[i-1][j]+k,min(A[i][j-1]+k,A[i-1][j-1]+abs(s1[i] - s2[j])));
}
}
}
void ini() //需要一点点预处理
{
for(int i=1;i<=len1;i++)
{
A[i][0]=A[i-1][0]+k;
}
for(int i=1;i<=len2;i++)
{
A[0][i]=A[0][i-1]+k;
}
}
int main()
{
cin>>s1;
cin>>s2;
cin>>k;
len1 = s1.size();
len2 = s2.size();
ini();
dp();
printf("%d",A[len1][len2]);
return 0;
}
样例输出:
6
很明显,错了。
但是!!!
直接交原tj代码居然过了?
说好的没过编译呢?