求助没有输出
查看原帖
求助没有输出
706760
xiaofeng_and_xiaoyu楼主2023/6/24 19:08
#include<bits/stdc++.h> 
using namespace std;
int l[413][413];
int a,b;
void dfs(int x,int y,int z){
	l[x][y]=z;
	if(x-2>0&&y-1>0){
		if(l[x-2][y-1]<z+1){
			dfs(x-2,y-1,z+1);
		}
	}
	if(x-2>0&&y+1<=b){
		if(l[x-2][y+1]<z+1){
			dfs(x-2,y+1,z+1);
		}
	}
	if(x-1>0&&y-2>0){
		if(l[x-1][y-2]<z+1){
			dfs(x-1,y-2,z+1);
		}
	}
	if(x-1>0&&y+2<=b){
		if(l[x-1][y+2]<z+1){
			dfs(x-1,y+2,z+1);
		}
	}
	if(x+1<=a&&y-2>0){
		if(l[x+1][y-2]<z+1){
			dfs(x+1,y-2,z+1);
		}
	}
	if(x+1<=a&&y+2<=b){
		if(l[x+1][y+2]<z+1){
			dfs(x+1,y+2,z+1);
		}
	}
	if(x+2<=a&&y-1>0){
		if(l[x+2][y-1]<z+1){
			dfs(x+2,y-1,z+1);
		}
	}
	if(x+2<=a&&y+1<=b){
		if(l[x+2][y+1]<z+1){
			dfs(x+2,y+1,z+1);
		}
	}
	return;
}
int main(){
	int c,d;
	cin>>a>>b>>c>>d;
	memset(l,0x3f,sizeof(l));
	dfs(c,d,0);
	for(int i=1;i<=a;i++){
		for(int j=1;j<=b;j++){
			if(l[i][j]=0x3f3f3f3f)cout<<left<<setw(5);
			else cout<<left<<setw(5)<<l[i][j];
		}
		cout<<endl;
	}
	return 0;
}

2023/6/24 19:08
加载中...