灌佬多,代码求调
  • 板块灌水区
  • 楼主zywsb
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/23 15:15
  • 上次更新2024/8/23 15:20:38
查看原帖
灌佬多,代码求调
1198260
zywsb楼主2024/8/23 15:15

P1443 求调

#include<bits/stdc++.h>
#define a first
#define b second
using namespace std;
const int N=410;
typedef pair<int,int>PII;
int n,m,x1,y1;
int dis[N][N];
PII q[N*N];
int dx[]={2,2,1,1,-1,-1,-2,-2},dy[]={1,-1,2,-2,2,-2,1,-1};
void bfs(int x,int y){
	memset(dis,-1,sizeof(dis));
	q[0]={x1,y1};
	dis[x1][y1]=0;
	int hh=0,tt=0;
	while(hh<=tt){
		auto t=q[hh++];
		for(int i=0;i<8;i++){
			int xx=t.a+dx[i],yy=t.b+dy[i];
			if(xx<1||xx>n||yy<1||yy>m)continue;
			if(dis[xx][yy]>=0)continue;
			dis[xx][yy]=dis[t.a][t.b]+1;
			q[++tt]={xx,yy};
		}
	}
}
int main(){
	scanf("%d %d %d %d",&n,&m,&x1,&y1);
	bfs(x1,y1);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			printf("%-5d",dis[i][j]);
		}
		printf("\n");
	}
	return 0;
}
2024/8/23 15:15
加载中...