求助0分BFS全wa
查看原帖
求助0分BFS全wa
773747
yutong_Seafloor楼主2023/6/27 18:41

帮帮我,史瓦罗先生

#include<bits/stdc++.h>
using namespace std;
int dx[8]={-2,-2,-1,-1,2,2,1,1},dy[8]={1,-1,2,-2,1,-1,2,-2};
int a[401][401],i,j,n,m,x,y;
struct node
{
	int x1,y2,ans;
};
queue<node>q;
void bfs(int x3,int y3)
{
	memset(a,-1,sizeof(a));
	a[x3][y3]=0;
	int y,t;
	q.push((node) {x3,y3,0});
	while(!q.empty())
	{
		node d=q.front();
		q.pop();
		for(i=0;i<7;i++)
		{
			y=d.x1+dx[i];
			t=d.y2+dy[i];
			if(y>=1&&y<=n&&t>=1&&t<=n&&a[y][t]==-1)
			{
			a[y][t]=d.ans+1;	
			q.push((node){y,t,d.ans+1});
            }
		}
	}
}
int main()
{
	cin>>n>>m>>x>>y;
	bfs(x,y);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		cout<<left<<setw(5)<<a[i][j];
		cout<<endl;
	}
	return 0;
}
2023/6/27 18:41
加载中...