为啥编译错误?我在洛谷IDE答案是对的啊
  • 板块P1443 马的遍历
  • 楼主eb0ycn
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/7/1 14:22
  • 上次更新2023/11/3 11:58:54
查看原帖
为啥编译错误?我在洛谷IDE答案是对的啊
536337
eb0ycn楼主2023/7/1 14:22
#include <stdio.h>
#include <string.h>
int n,m,x,y,qi[401][401],dl[160001][2],tot=1,p,xa,ya;//qi是棋盘,dl是队列0行1列
bool vis[401][401];//是否访问过,0没有1有
int h[8]={1,2,2,1,-1,-2,-2,-1};
int l[8]={2,1,-1,-2,-2,-1,1,2};//八个方向
void bfs(int a,int b)
{
    while(p<tot)
    {
        for(int i=0;i<8;++i)
        {
            xa=a+h[i];
            ya=b+l[i];
            if((xa>0&&xa<=n&&ya>0&&ya<=m)&& !vis[xa][ya])
            {
                vis[xa][ya]=1;
                dl[tot][0]=xa;
                dl[tot][1]=ya;
                ++tot;
                qi[xa][ya]=qi[a][b]+1;
            }
        }
        ++p;
        bfs(dl[p][0],dl[p][1]);
    }
}
int main()
{
    memset(qi,-1,sizeof(qi));
    scanf("%d %d %d %d",&n,&m,&x,&y);
    qi[x][y]=0;
    vis[x][y]=1;
    bfs(x,y);
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=m;++j)
        {
            printf("%-5d",qi[i][j]);
        }
        printf("\n");
    }
    return 0;
}
2023/7/1 14:22
加载中...