20pts求调
查看原帖
20pts求调
1327913
XUKEYING2011楼主2025/8/1 20:45
#include<bits/stdc++.h>
using namespace std;
struct topp{
	int x,y,t;
};
int n,m,l,r,w[402][402],dx[8]={-2,-2,-1,1,2,2,1,-1},dy[8]={-1,1,2,2,1,-1,-2,-2};
queue<topp>q;
int main(){
	scanf("%d%d%d%d",&n,&m,&l,&r);
	memset(w,255,sizeof w);
	q.push(topp{l,r,0});
	while(!q.empty()){
		int nx=q.front().x,ny=q.front().y,nt=q.front().t;
		q.pop();
		if(nx<1||nx>n||ny<1||ny>n||w[nx][ny]!=-1)continue;
		w[nx][ny]=nt;
		for(int i=0;i<8;i++)q.push(topp{nx+dx[i],ny+dy[i],nt+1});
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)printf("%d ",w[i][j]);
		printf("\n");
	}
    return 0;
}
2025/8/1 20:45
加载中...