永发信息网

c++乳草的入侵,求讲解

答案:2  悬赏:40  手机版
解决时间 2021-11-24 05:17
c++乳草的入侵,求讲解
最佳答案
这用的是广度优先搜索算法,要想完整地学习的话还是自行去找资料吧,这里针对这份代码说一下。dx和dy是坐标偏移量,在网格式的地图或棋盘上的搜索经常用到,这里的8个元素就是用来枚举某个点(x,y)周围相邻的8个点(x-1,y-1),(x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1),比如(x,y)的第一个相邻点就是(x+dx[0],y+dy[0])。稍微讲下代码:
     Q.push(s);//将第一个点加入搜索队列
     visit[s.x][s.y]=1;//点(s.x,s.y)标记为已访问
      while(!Q.empty())//队列不为空就搜索
      {
        now=Q.front();//取出队首的点
        Q.pop();
        //printf("%d %d %d
",now.x,now.y,now.step);
        for(int i=0;i<8;i++)//用循环枚举周围的8个点
        {
            next=now;
           next.x=now.x+dx[i];//x和y分别加上偏移量,得到一个新扩展的点
           next.y=now.y+dy[i];
           if(next.x>=0&&next.x=0&&next.y           {
               next.step=now.step+1;
               Q.push(next);//将新扩展的点加入搜索队列
               visit[next.x][next.y]=1;//并标记为已访问
               if(ans           }
        }
      }
全部回答
这就是一个宽搜嘛,符合条件的入队扩展节点,不断循环直到队空追问能不能给讲得清楚一点?谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
哪款GTX1060(6G)好
公司的知识产权有多个权属人时,A公司用过之
有350个字吗?
九观桥到底好不好玩?
震惊,高考怎么选志愿,99%的人都不知道
深圳哪里有卖3D打印机的?
伤残军人有没有无息贷款?
韦辉浪柳江进德镇人,性别男,三十岁左右
感谢在外打拼的亲人感语
RJU外墙专用防水涂料有哪些
when you cross the street ,you should walk
很久以前的那天 尹钟信 音译歌词
求教已经结局的好看的玄幻小说
洋松木材主要用于木结构房子哪一部分的建造?
中央派“扫黑钦差"督战扫黑来山东济宁吧,济
推荐资讯
现在平湖到海盐一天有几班车?都是几点的?
我的电脑内存条是 金邦DDR2 800MHZ 2GB
承德高新技术产业开发区的区位优势
151111怎么算24点?
罗马健身俱乐部地址在什么地方,我要处理点事
怎样选一款好的手帐本?
关卡有什么用,通关有什么奖励
油田生产中 什么是井口回压?
从道口去新郑最快的乘车路线?
微波炉高压二极管2x062h那头接地
求日剧绝对零度资源
求X的值,谢谢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?