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个,不明情况,望大佬们指出错误,谢谢了!