SSL 1455 电子老鼠闯迷宫
题目描述:
- 样例错了,输出为 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 电子老鼠闯迷宫相关推荐
- 算法实验三 【电子老鼠闯迷宫】分支限界
算法实验三 [电子老鼠闯迷宫]分支限界 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元 ...
- 算法实验三 Problem B电子老鼠闯迷宫
Problem B 电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建 ...
- 电子老鼠闯迷宫(BFS)
电子老鼠闯迷宫 Description 如下图12×12方格图,找出一条自入口(2,9)到出口(11,8)的最短路径. Input Output Sample Input 12 //迷宫大小 2 9 ...
- 1042电子老鼠闯迷宫 (广搜)
1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色 ...
- NOJ 1042 电子老鼠闯迷宫
2016.11.3 [题目描述] 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方 ...
- NOJ1042——算法实验三——电子老鼠闯迷宫
电子老鼠闯迷宫 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一 ...
- 【NOJ1042】【算法实验三】电子老鼠闯迷宫
1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部 ...
- (ssl1455)电子老鼠闯迷宫
电子老鼠闯迷宫 Time Limit:1000MS Memory Limit:65536K Total Submit:151 Accepted:107 Description 如下图12×12方格图 ...
- 1042 电子老鼠闯迷宫
电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路. ...
最新文章
- 第三次小组实践作业小组每日进度汇报:2017-12-8
- python判断输入的数字是完全平方还是三次方
- 7-1 输出从1加到N的和 (9 分)
- 【kafka】kafka LogSegmentOffsetOverflowException segment overflow Detected offset overflow
- OObjective-c UIView 蒙层
- labelme 将自己数据集实现自动标注
- 【转载】快逸报表问题
- 峨眉山三日游攻略:带一个伤心的女纸,去峨眉寻一点清净
- 东大计算机硕士奖学金,计算机科学与技术学院2018级硕士研究生学业奖学金评定情况.PDF...
- 《数据库原理》——知识点总结(期末复习)
- vs 设置起始页不见了_VS2015,为什么模板不见了,请教
- 微信小程序常见问题记录
- fluxion5.9 踩坑
- deepin20无法启动图形界面_U盘启动盘暗藏推广?用它来打造安全个性的PE工具箱...
- 蓝桥杯单片机学习记录(8)(PWM脉宽调制)
- 数据库学习笔记2(补遗笔记1)
- dell服务器卡在启动界面_戴尔最新bios设置图解 当电脑出现开机画面按F2进入
- 汇编基址变址寻址方式的使用
- python3 base64.b64decode Base64解码报错: Incorrect padding
- 区块链每日必学:智能合约如何接收以太
热门文章
- CO2气体保护电弧焊
- 搜狗地图孔祥来谈开放API和地图服务
- Safari浏览器低版本时候,只发option-CorsFilter配置
- python nonetype object is not_python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法...
- vscode怎么新建vue项目
- Pandas数据分析18——pandas文本处理
- 正斜杠和反斜杠的使用场景
- [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找)
- 美国“顺丰”Q1财报超预期,联邦快递能否甩开亚马逊机队?
- 最小化窗口后,在任务栏里找不到最小化后的图标