全输出0,求大佬差错
  • 板块P1443 马的遍历
  • 楼主KFGBK
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/10/23 15:33
  • 上次更新2023/11/5 10:06:45
查看原帖
全输出0,求大佬差错
276733
KFGBK楼主2020/10/23 15:33
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
struct j{
	int x,y;
	int step=0;
}q[160005];
int fx[8]={2,-2,2,-2,-1,1,-1,1};
int fy[8]={1,1,-1,-1,2,2,-2,-2};
int xy[405][405]={-1};
void bfs(int n,int m,int a,int b){
	int head=1,tail=1;
	q[tail].x=a;
	q[tail].y=b;
	q[tail].step=0;
	xy[a][b]=0;
	tail++;
	while(head<tail){
		int nx=0,ny=0;
		for(int i=0;i<=7;i++){
			nx=q[head].x+fx[i];
			ny=q[head].y+fy[i];
			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&xy[nx][ny]==-1){
				q[tail].x=nx;
				q[tail].y=ny;
				q[tail].step=q[head].step+1;
				xy[nx][ny]=q[tail].step;
				tail++;
			}
		}
		head++;
	}
}
int main(){
	cin>>n>>m>>a>>b;
	bfs(n,m,a,b);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<xy[i][j]<<"    ";
		}
		cout<<endl;
	}
	return 0;
}
2020/10/23 15:33
加载中...