HELP!!!!!
查看原帖
HELP!!!!!
1011011
monkey333楼主2024/1/13 14:26
#include <bits/stdc++.h>
using namespace std; 
int main(){
	int m,n,x,y,nx,ny,rear,front;
	int a[401][401];
	int d[3][100001];
	int zx[10]={0,-2,-2,2,2,1,1,-1,1};
	int zy[10]={0,1,-1,1,-1,-2,2,2,-2};
	cin>>n>>m>>x>>y;
	memset(a,-1,sizeof(a));
	a[x][y]=0;
	rear=1;
	front=1;
	d[1][front]=x;
	d[2][front]=y;
	while(front<=rear)
	{
		for(int i=1;i<=8;i++)
		  {
		  	nx=d[1][front]+zx[i];
		  	ny=d[2][front]+zy[i];
		  	if(a[nx][ny]==-1&&nx<=n&&ny<=m&&nx>0&&ny>0)
		  	  {
		  	  	a[nx][ny]=a[d[1][front]][d[2][front]]+1;
		  	  	rear++;
				d[1][rear]=nx;
		  	    d[2][rear]=ny;
			  }
		  }
		front++;
	}
	for(int i=1;i<=n;i++)
	  {
	  	for(int j=1;j<=m;j++)
	    cout<<a[i][j]<<' ';
	    cout<<endl;
	  }
	return 0;
} 
2024/1/13 14:26
加载中...