WWF_666 2021-08-05 22:50 采纳率: 33.3%
浏览 15
已结题

广度优先搜索之马的遍历,为什么通过不了?

img

#include<bits/stdc++.h>
using namespace std;
struct point{
    int x,y;
};
queue<point> q;
int ans[410][410];
int walk[8][2]={{2,1},{1,2},{2,-1},{1,-2},
{-2,1},{-1,2},{-2,-1},{-1,-2}};
int main(){
    int n,m,x,y;
    cin>>n>>m>>x>>y;
    memset(ans,-1,sizeof(ans));//-1表示未访问 
    point start={x,y};
    q.push(start);//使起点入队列 
    ans[x][y]=0;
    while(!q.empty()){
        point head=q.front();//拿出队首以扩展 
        int hx=head.x,hy=head.y;
        q.pop();
        for(int i=0;i<8;i++){
            int xx=hx+walk[i][0],yy=hy+walk[i][1];
            int d=ans[hx][hy];
            if(xx<1||xx>n||yy<1||yy>m||ans[xx][yy]!=-1){
                continue;//无需入队列 
            } 
            ans[xx][yy]=d+1;//记录答案,第几步 
            point next={xx,yy};
            q.push(next);
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<ans[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月13日
    • 创建了问题 8月5日

    悬赏问题

    • ¥30 模拟电路 logisim
    • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
    • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
    • ¥15 安装quartus II18.1时弹出此error,怎么解决?
    • ¥15 keil官网下载psn序列号在哪
    • ¥15 想用adb命令做一个通话软件,播放录音
    • ¥30 Pytorch深度学习服务器跑不通问题解决?
    • ¥15 部分客户订单定位有误的问题
    • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
    • ¥15 Bug traq 数据包 大概什么价