90求助
查看原帖
90求助
892625
WangYinxiAlex楼主2024/3/23 08:54
#include<iostream>
#include<iomanip>
using namespace std;
int a[401][401];
int n,m,x,y;
int dlt[8][2]={{1,2},{2,1},{2,-1},{-1,2},{-2,1},{-2,-1},{1,-2},{-1,-2}};
void add(int x,int y,int temp){
	if(a[x][y]<=temp&&a[x][y]!=-1)return;
	a[x][y]=temp;
	for(int i=0;i<8;i++){
		int tx=x+dlt[i][0];
		int ty=y+dlt[i][1];
		if(tx<0||ty<0||tx>=n||ty>=m)continue;
		add(tx,ty,temp+1);
	}
}
void set(int num,int size){
	string num1;
	bool f=false;
	if(num<0){
		f=true;
		num=abs(num);
	}
	if(num==0)num1='0';
	while(num){
		char a=num%10+'0';
		num1=a+num1;
		num/=10;
	}
	if(f)num1='-'+num1;
	cout<<num1;
	for(int i=0;i<size-num1.size()-1;i++)cout<<" ";
}
int main(){
	cin>>n>>m>>x>>y;
	x--;
	y--;
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++)a[i][j]=-1;
	}
	add(x,y,0);
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++)set(a[i][j],5);
		cout<<endl;
	}
	return 0;
}
2024/3/23 08:54
加载中...