状态转移方程对,但不知道为啥错,求大佬解答
查看原帖
状态转移方程对,但不知道为啥错,求大佬解答
1238574
dzy15373891653楼主2024/11/22 15:38
#include<bits/stdc++.h>
using namespace std;
const int N=2005;
string s,s1;
int len1,len,f[N][N];
char s0[N],s11[N];
int dp(int x,int y)
{
	if(f[x][y]!=-1) return f[x][y]; 
	if(x==0) return f[x][y]=y;
	if(y==0) return f[x][y]=x;
	int sum=1;
	if(s0[x]==s11[y]) sum=0;
	return f[x][y]=min(dp(x-1,y)+1,min(dp(x-1,y-1)+sum,dp(x,y-1)+1));
}
int main()
{
	cin>>s>>s1;
	len=s.length();
	len1=s1.length();
	memset(f,-1,sizeof(f));
	for(int i=1;i<=len;i++) s0[i]=s[i-1];
	for(int i=1;i<=len1;i++) s11[i]=s1[i-1];
	dp(len,len1);
	cout<<f[len][len1];
}
2024/11/22 15:38
加载中...