最后一个WA了!!请求大佬帮助!
  • 板块P1443 马的遍历
  • 楼主W0718
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/7/22 18:20
  • 上次更新2024/7/22 19:50:00
查看原帖
最后一个WA了!!请求大佬帮助!
776751
W0718楼主2024/7/22 18:20
#include<bits/stdc++.h>
using namespace std;
const int maxn=500+11;
int n,m;
int d[8][2]={{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2}};
int a[maxn][maxn];
bool vis[maxn][maxn];
struct node{
	int mx;int my;int cnt;
	node(int xx,int yy,int cc)
	{
		mx=xx;my=yy;cnt=cc;
	}
};
queue<node> q;
void bfs(int x,int y)
{
	q.push(node(x,y,0));vis[x][y]=true;
	while(!q.empty())
	{
		node nd=q.front();q.pop();
		for(int i=0;i<8;i++)
		{
			int dx=nd.mx+d[i][0];
			int dy=nd.my+d[i][1];
			if(dx<=0||dy<=0||dx>n||dy>m||vis[dx][dy])continue;
			vis[dx][dy]=true;
			a[dx][dy]=nd.cnt+1;
			q.push(node(dx,dy,nd.cnt+1));
		}
	}
	return ;
}
int main()
{
	int x,y;
	scanf("%d %d %d %d",&n,&m,&x,&y);
	bfs(x,y);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]==0&&(i!=x&&j!=y))printf("-1 ");
			else printf("%d ",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
2024/7/22 18:20
加载中...