不理解
查看原帖
不理解
501652
LCY0921楼主2022/8/25 21:59
#include<bits/stdc++.h>
using namespace std;
string A,B;
int dp[2003][2003];
int lena,lenb;
int k;

int f(int x,int y){
	if(dp[x][y]<=200000) return dp[x][y];
	if(x==0&&y==0) return dp[x][y]=abs(int(A[x])-int(B[y]));
	if(x==0) return dp[x][y]=min(f(x,y-1)+k,abs(int(A[x])-int(B[y]))+y*k);
	if(y==0) return dp[x][y]=min(f(x-1,y)+k,abs(int(A[x])-int(B[y]))+x*k);
	return dp[x][y]=min(min(abs(int(A[x])-int(B[y]))+f(x-1,y-1),f(x-1,y)+k),f(x,y-1)+k);
}
int main(){
	memset(dp,0x3f,sizeof(dp));
	cin>>A;
	cin>>B;
	lena=A.length();
	lenb=B.length();
	cin>>k;
	cout<<f(lena-1,lenb-1);
	return 0;
}

为什么样例没过 但是对了?测评结果

2022/8/25 21:59
加载中...