关于我家马会跑了但又没完全会跑这件事
查看原帖
关于我家马会跑了但又没完全会跑这件事
304686
Coding__Yao楼主2022/2/10 21:43

为什么只有60分,1 2 3 6WA,求助!

#include<bits/stdc++.h>
using namespace std;
int n,m,sx,sy;
int mp[5000][5000];
int xx[8]={2,1,1,2,-1,-1,-2,-2};
int yy[8]={1,2,-2,-1,2,-2,1,-1};
struct node{
	int x,y,s;
};
int main()
{
	cin>>n>>m>>sx>>sy;
	memset(mp,-1,sizeof(mp));
	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=q.front().x+xx[i];
			int dy=q.front().y+yy[i];
			if(dx >= 0&&dx <= n&&dy >= 0&&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]);
		}
		cout<<endl;
	}
	return 0;
}
2022/2/10 21:43
加载中...