求助!过两个点,数据输出全对,格式出大问题
  • 板块P1443 马的遍历
  • 楼主chenyq
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/7/28 09:35
  • 上次更新2023/10/27 18:04:32
查看原帖
求助!过两个点,数据输出全对,格式出大问题
666668
chenyq楼主2022/7/28 09:35
#include<iostream>
#include<string.h>
#include<queue>
using namespace std;

struct no{
	int x,y;
};

int n,m,x,y,vis[405][405];
int fx[8]={1,2,2,1,-1,-2,-2,-1};
int fy[8]={2,1,-1,-2,-2,-1,1,2};

void bfs(int x,int y){
	queue <no> q;
	q.push({x,y});
	vis[x][y]=0;
	while(!q.empty()){
		no f=q.front();
		q.pop();
		for(int i=0;i<8;i++){
			int xx=f.x+fx[i],yy=f.y+fy[i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&vis[xx][yy]==-1){
				vis[xx][yy]=vis[f.x][f.y]+1;
				q.push({xx,yy});
			}
		}
	}
}

int main(){
	cin>>n>>m;
	cin>>x>>y;
	memset(vis,-1,sizeof(vis));
	bfs(x,y);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<vis[i][j]<<"    ";
		}
		cout<<endl;
	}
	return 0;
}
2022/7/28 09:35
加载中...