RE 0分求助
查看原帖
RE 0分求助
452450
CadeShuWindsor楼主2022/8/19 10:31

RT

#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,x2,y2; 
int a[405][405];

struct Tnode{
	int x,y;
	int step;
}qu[164025];

int dx[8]={-1,1,2,2,1,-1,-2,-2};
int dy[8]={2,2,1,-1,-2,-2,-1,1}; 

int BFS(int x0,int y0)
{
	qu[0].x=x0;
	qu[0].y=y0;
	int head=0;
	int tail=1;
	while(head<tail)
	{
		int x=qu[head].x;	
		int y=qu[head].y;
		int s=qu[head].step;
		head++;
		for(int d=0;d<8;d++)
		{
			int nx=x+dx[d];
			int ny=y+dy[d];
			
			if(nx==i&&ny==j)
				return s+1;
			
			if(nx<=i&&ny<=j&&nx>0&&ny>0)
			{
				qu[tail].step=s+1;
				qu[tail].x=nx;
				qu[tail++].y=ny;
			}

		}
	}
	return -1;	
}

int main(){
    scanf("%d",&n);
    scanf("%d",&m);
	scanf("%d",&x2);
	scanf("%d",&y2);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
			cout<<BFS(x2,y2)<<" ";
		cout<<endl;
	}
    return 0;
}

2022/8/19 10:31
加载中...