求助:过河卒 3、4号数据计算不正确 求帮助
查看原帖
求助:过河卒 3、4号数据计算不正确 求帮助
910266
GRASS_C楼主2022/12/23 21:05

过河卒 计算出错 求帮助 谢谢

以下为代码部分

#include<iostream>
#include<algorithm>
using namespace std;
int check(int x, int y,int m, int n){
	return ((std::abs(m-x)==2 || std::abs(n-y)==2) && (std::abs(m-x)+std::abs(n-y)==3)) || (x==m&&y==n);//此处运用了切比雪夫距离和霍夫曼距离来判断这一坐标卒是否可以经过
}
int main(){
	int x_b,y_b,x_c,y_c;
	cin>>y_b>>x_b>>y_c>>x_c;
	int a[x_b+5]={0};
	x_b+=2;y_b+=2;x_c+=2;y_c+=2;//这里是为了防止数组越位
	a[2]=1;
	
	for(int i=2;i<=y_b;i++){
		for(int j=2;j<=x_b;j++){
			if(check(j,i,x_c,y_c))a[j]=0;
			else a[j]+=a[j-1];//这里是用了滚动数组来减小空间复杂度
		}
	}
	cout<<a[x_b]<<endl;
	return 0;
}

以上文本是参考了题解,然后我自己按照自己能理解的部分写的,求帮助,谢谢。

2022/12/23 21:05
加载中...