题目描述:

  • 样例错了,输出为 27。

解题思路:

这一题就是一道裸的广搜,主要就是考虑路径输出。
我们需要一个 p r e i pre_i prei​ ,记录节点 i i i 在广搜中是由哪个节点转移的,然后最后用递归一步步倒推输出,即可处理路径问题。
输出路径函数:

void print(int p)
{if(p==1){cout<<"("<<SX<<","<<SY<<")->";return ;}print(pre[p].fa);cout<<"("<<pre[p].x<<","<<pre[p].y<<")->";return ;
}

函数的作用为输出从根节点到 p p p 的路径。


CODE:

#include <iostream>
#include <queue>
#include <cstring>
using namespace std;
int n,SX,SY,FX,FY;
int a[1001][1001]={0};
struct Gar
{int x,y,step,s;Gar(int xx,int yy,int st,int ss):x(xx),y(yy),step(st),s(ss) {}
};
struct qwq
{int x,y,fa;
};
qwq pre[1000010];
const int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
bool vis[1001][1001]={false};
queue<Gar> q;void print(int p)
{if(p==1){cout<<"("<<SX<<","<<SY<<")->";return ;}print(pre[p].fa);cout<<"("<<pre[p].x<<","<<pre[p].y<<")->";return ;
}void bfs(int sx,int sy,int fx,int fy)
{vis[sx][sy]=true;q.push(Gar(sx,sy,1,1));int f=1;pre[f].x=sx;pre[f].y=sy;pre[f].fa=0;while(!q.empty()){Gar u=q.front();q.pop();if(u.x==fx&&u.y==fy){print(pre[u.s].fa);cout<<"("<<u.x<<","<<u.y<<")"<<endl;cout<<u.step;return ;}for(int i=0;i<4;i++){int nx=u.x+dx[i],ny=u.y+dy[i];if(nx<=0||nx>n||ny<=0||ny>n) continue;if(a[nx][ny]==1) continue;if(vis[nx][ny]) continue;vis[nx][ny]=true;q.push(Gar(nx,ny,u.step+1,f+1));f++;pre[f].x=nx;pre[f].y=ny;pre[f].fa=u.s;}}return ;
}
int main()
{cin>>n;cin>>SX>>SY>>FX>>FY;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)cin>>a[i][j];}bfs(SX,SY,FX,FY);return 0;
}

SSL 1455 电子老鼠闯迷宫相关推荐

  1. 算法实验三 【电子老鼠闯迷宫】分支限界

    算法实验三 [电子老鼠闯迷宫]分支限界 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元 ...

  2. 算法实验三 Problem B电子老鼠闯迷宫

    Problem B 电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建 ...

  3. 电子老鼠闯迷宫(BFS)

    电子老鼠闯迷宫 Description 如下图12×12方格图,找出一条自入口(2,9)到出口(11,8)的最短路径. Input Output Sample Input 12 //迷宫大小 2 9 ...

  4. 1042电子老鼠闯迷宫 (广搜)

    1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K  总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色 ...

  5. NOJ 1042 电子老鼠闯迷宫

    2016.11.3 [题目描述] 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方 ...

  6. NOJ1042——算法实验三——电子老鼠闯迷宫

    电子老鼠闯迷宫 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一 ...

  7. 【NOJ1042】【算法实验三】电子老鼠闯迷宫

    1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部 ...

  8. (ssl1455)电子老鼠闯迷宫

    电子老鼠闯迷宫 Time Limit:1000MS  Memory Limit:65536K Total Submit:151 Accepted:107 Description 如下图12×12方格图 ...

  9. 1042 电子老鼠闯迷宫

    电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路. ...

最新文章

  1. 第三次小组实践作业小组每日进度汇报:2017-12-8
  2. python判断输入的数字是完全平方还是三次方
  3. 7-1 输出从1加到N的和 (9 分)
  4. 【kafka】kafka LogSegmentOffsetOverflowException segment overflow Detected offset overflow
  5. OObjective-c UIView 蒙层
  6. labelme 将自己数据集实现自动标注
  7. 【转载】快逸报表问题
  8. 峨眉山三日游攻略:带一个伤心的女纸,去峨眉寻一点清净
  9. 东大计算机硕士奖学金,计算机科学与技术学院2018级硕士研究生学业奖学金评定情况.PDF...
  10. 《数据库原理》——知识点总结(期末复习)
  11. vs 设置起始页不见了_VS2015,为什么模板不见了,请教
  12. 微信小程序常见问题记录
  13. fluxion5.9 踩坑
  14. deepin20无法启动图形界面_U盘启动盘暗藏推广?用它来打造安全个性的PE工具箱...
  15. 蓝桥杯单片机学习记录(8)(PWM脉宽调制)
  16. 数据库学习笔记2(补遗笔记1)
  17. dell服务器卡在启动界面_戴尔最新bios设置图解 当电脑出现开机画面按F2进入
  18. 汇编基址变址寻址方式的使用
  19. python3 base64.b64decode Base64解码报错: Incorrect padding
  20. 区块链每日必学:智能合约如何接收以太

热门文章

  1. CO2气体保护电弧焊
  2. 搜狗地图孔祥来谈开放API和地图服务
  3. Safari浏览器低版本时候,只发option-CorsFilter配置
  4. python nonetype object is not_python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法...
  5. vscode怎么新建vue项目
  6. Pandas数据分析18——pandas文本处理
  7. 正斜杠和反斜杠的使用场景
  8. [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找)
  9. 美国“顺丰”Q1财报超预期,联邦快递能否甩开亚马逊机队?
  10. 最小化窗口后,在任务栏里找不到最小化后的图标