问题标题: 酷町堂:4027 字符串的距离 ....CE?

0
0
已解决
周俊豪
周俊豪
高级光能
高级光能

luogu上提交是AC的啊,

为啥CE

dalao们求助........

#include<iostream>
#include<cmath>
#include<string>
using namespace std;
string a,b;
long long t;
long long f[2001][2001];
int main(){
	cin>>a;
	cin>>b;
	cin>>t;
	int n=a.size(),m=b.size();
	for(int i=0;i<=n;i++){
		f[i][0]=i*t;
	}
	for(int j=0;j<=m;j++){
		f[0][j]=j*t;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
	        f[i][j]=min(min(f[i-1][j]+t,f[i][j-1]+t),f[i-1][j-1]+abs(a[i-1]-b[j-1]));
		}
	}
	cout<<f[n][m];
	return 0;
} 

周俊豪在2020-08-15 15:06:23追加了内容

4027


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

这个问题老师应该说过,因为abs函数对于整数时,头文件是#include<cstdlib>

改后AC

0
包涵宇
包涵宇
中级天翼
中级天翼

f[i][j]=min(min(f[i-1][j]+t,f[i][j-1]+t),f[i-1][j-1]+abs(a[i-1]-b[j-1]));

改为

f[i][j]=min(min(f[i-1][j]+t,f[i][j-1]+t),int(f[i-1][j-1]+abs(a[i-1]-b[j-1])));

即可AC

PS    :我也不知道为什么,有可能abs(a[i-1]-b[j-1])返回的是char值,加上f[i-1][j-1]估计还是char,但DEV帮你自动强转了

我要回答