40分求助!
  • 板块灌水区
  • 楼主快乐一凡
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/8/11 21:31
  • 上次更新2023/11/4 10:59:59
查看原帖
40分求助!
502426
快乐一凡楼主2021/8/11 21:31

P1443 马的遍历

网址:马的遍历

#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include <iomanip>
using namespace std;
int xx[]={2,2,1,1,-1,-1,-2,-2};
int yy[]={1,-1,2,-2,2,-2,1,-1};
int n,m,sx,sy;
int mp[500][500];
struct node
{
	int x,y,s;
};
int main()
{
	cin>>n>>m>>sx>>sy;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			mp[i][j]=-1;
		}
	}
	queue <node> q;
	q.push((node){sx,sy,0});
	mp[sx][sy]=0;
	while(!q.empty())
	{
		for(int i=0;i<8;i++)
		{
			int dx=xx[i]+q.front().x;
			int dy=yy[i]+q.front().y;
			if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&mp[dx][dy]==-1)
		    {
			    q.push((node){dx,dy,q.front().s+1});
			    mp[dx][dy]=q.front().s+1;
		    }
		}
		q.pop();
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			printf("%-5d",mp[i][j]);
		}
		printf("\n");
	}
	return 0;
}

40分WA6个,不明情况,望大佬们指出错误,谢谢了!

2021/8/11 21:31
加载中...