蒟蒻求调
查看原帖
蒟蒻求调
922943
rc_Taurus楼主2023/1/31 13:42
#include<bits/stdc++.h>
#pragma GCC optmize(2)
using namespace std;
#define int long long
struct node{int x,y,t;};
queue<node>q;
int n,m,x,y,a[405][405],dx[]={-2,-2,-1,-1,2,2,1,1},dy[]={1,-1,2,-2,1,-1,2,-2}; 
void bfs(int x,int y){
	memset(a,-1,sizeof(a));
	q.push({x,y,0});
	a[x][y]=0;
	while(!q.empty()){
		node f=q.front();
		q.pop();
		for(int i=0;i<=7;i++){
			int nx=f.x+dx[i],ny=f.y+dy[i];
			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&a[nx][ny]==-1){
				a[nx][ny]=f.t+1;
				q.push({nx,ny,f.t+1});
			}
		} 
	}
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m>>x>>y;
	bfs(x,y);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)printf("%-5d",a[i][j]);
		cout<<endl;
	}
	return 0;
}

2023/1/31 13:42
加载中...