题意:给出两个字符串x和y,要求使用最少的操作使得X变为y,求解该最少操作数.
#include<iostream>
#include<fstream>
using namespace std;
int dp[1001][1001];
char a[1010],b[1010];
int n1,n2;
void read(){
// ifstream cin("in.txt");
int i,j,k;
while(cin>>n1>>a>>n2>>b)
{
for(i=1;i<=n1;i++)
dp[i][0]=i;
for(i=1;i<=n2;i++)
dp[0][i]=i;
for(i=1;i<=n1;i++)
for(j=1;j<=n2;j++)
{
if(a[i-1]==b[j-1])
dp[i][j]=dp[i-1][j-1];
else
dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1;
}
cout<<dp[n1][n2]<<endl;
}
}
int main(){
read();
return 0;
}