Description

铁塔尼号遇险了!他发出了求救信号。距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里。通过侦测,哥伦比亚号获取了一张海洋图。这张图将海洋部分分化成n*n个比较小的单位,其中用1标明的是陆地,用0标明是海洋。船只能从一个格子,移到相邻的四个格子。为了尽快赶到出事地点,哥伦比亚号最少需要走多远的距离。

Input

第一行为n,下面是一个n*n的0,1矩阵,表示海洋地图
最后一行为四个小于n的整数,分别表示哥伦比亚号和铁塔尼号的位置。

Output

哥伦比亚号到铁塔尼号的最短距离,答案精确到整数。

Sample Input

3
001
101
100
1 1 3 3

Sample Output

4

HINT

数据范围:N<=1000

简单的BFS,第一次搜到终点(铁塔尼号)就是最少走的距离,因为BFS是一层一层的扩展,所以第一次搜到就是最短的。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1010;
struct node{int x,y,t;
};
string mp[maxn];
bool vis[maxn][maxn];
int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};
int n,sx,sy,dx,dy;
queue <node> qu;
bool in(int x,int y){return 1<=x&&x<=n&&1<=y&&y<=n;
}
int bfs(){node tmp;tmp.x = sx;tmp.y = sy;tmp.t=0;qu.push(tmp);vis[sx][sy] = 1;while(!qu.empty()){node now = qu.front();qu.pop();for(int i =0;i < 4;i++){int tx = now.x + dir[i][0];int ty = now.y + dir[i][1];if(in(tx,ty) && mp[tx][ty] =='0'&& vis[tx][ty] == 0){if(tx == dx && ty == dy){return now.t+1;}node tmp;tmp.x = tx;tmp.y = ty;tmp.t = now.t+1;qu.push(tmp);vis[tx][ty] = 1;                    }}}
}
int main(){cin >> n;for(int i = 1; i<= n;i++){cin >> mp[i];mp[i]=' '+mp[i];}cin >> sx >> sy >> dx >> dy;cout << bfs() << endl;  return 0;
}

[BFS]营救营救铁达尼号-C++相关推荐

  1. 【BFS】营救铁达尼号(C++)

    Description 铁塔尼号遇险了!他发出了求救信号.距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里.通过侦测,哥伦比亚号获取了一张海洋图.这张图将海洋部分分化成n*n个比较小的单 ...

  2. 实现BFS之“营救”

    广度优先遍历(Breadth First Search,BFS)是一个分层的搜索过程,没有回退过程,是非递归的. DFS与BFS的小秘密: 1.深度优先搜索算法的思路很简单,比较好理解,但得到的解不是 ...

  3. 1689: 营救小明(bfs+priority_queue逆向思维)

    1689: 营救小明 时间限制: 1 Sec 内存限制: 32 MB [提交][状态][讨论版] 题目描述 一天,小明梦见自己被外星人抓走了,他被关在了一座监狱里,这座监狱形如N*M(N,M<= ...

  4. hrbust 哈理工oj 1989 营救小组【BFS】

    营救小组 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 181(39 users) Total Accepted: 46(35 use ...

  5. 洛谷 - P4011 孤岛营救问题(bfs+状态压缩)

    题目链接:点击查看 题目大意:给出一个n*m的迷宫,其中有一些边为不可逾越的墙,有一些边为不同型号的门,而钥匙会分布在迷宫的不同位置,求从点(1,1)到点(n,m)的最短时间 题目分析:出现在网络流里 ...

  6. XJOI 3585 The rescue plan 营救计划 题解

    英文 Time Limit:1s Memory Limit:256M Description Given a n*m map.A "Mengxin" is trapped.You ...

  7. 孤岛营救与汽车加油行驶问题

    题目链接:https://www.luogu.org/problemnew/show/P4011 (孤岛营救)|| https://www.luogu.org/problemnew/show/P400 ...

  8. P4011 孤岛营救问题

    P4011 孤岛营救问题 文章目录 输入输出样例 题意: 题解: 代码: 输入输出样例 输入 4 4 9 9 1 2 1 3 2 1 2 2 2 0 2 1 2 2 0 2 1 3 1 0 2 3 3 ...

  9. [网络流24题-6]孤岛营救问题

    孤岛营救问题 为什么又是奇奇怪怪的混进来的题啊QAQ 又没想出网络流解法啊QAQ 看见P是10就又状压了吖QwQ bfs跑一遍就吼了w 为啥子网络流24题总是状压+最短路/bfs啊QAQ 哦对记得门和 ...

最新文章

  1. display:inline-block的妙用!!列表布局!!
  2. Docker配置指南系列(二):指令集(二)
  3. Exchange动态同步中的INTERNET_29错误代码
  4. 苹果自带相册打马赛克_老王被绿?iOS 13惊现漏洞,马赛克去除
  5. 缓存核心知识小抄,面试必备,赶紧收藏!
  6. 学习linux第二周作业
  7. Redis笔记之基本数据结构 动态字符串SDS
  8. mysql8.0登录不上去怎么回事_速看!智慧团建系统登录平台及信息查询入口
  9. 2017软件构造3.3
  10. 自适应迁移学习核极限学习机KELM用于分类
  11. 道道通导航linux升级,道道通导航升级免费版
  12. 五大创新型AI软件公司,下一个AI独角兽就是你
  13. 云栖小镇通勤车_云栖小镇通勤特快线即将上线!@上班族们,冬日上班新姿势快来Get!...
  14. android view.setVisibility 不显示问题
  15. 简单的SVN客户端版本迁出
  16. 面试算法题-平衡点问题
  17. 好分数阅卷3.0_好分数教师版下载-好分数教师版app下载(暂未上线)_预约_飞翔下载...
  18. canny算法(1)——高斯平滑滤波
  19. 零基础网络工程师如何通过华为认证?
  20. 洛克菲勒给儿子的38封信(前14封选摘)

热门文章

  1. SAP开发框架系列之 自动单据
  2. redis下的cluste的脚本监控
  3. PCR | RT-PCR 的原理及应用
  4. iis建立php论坛,win2003+IIS+php+MySQL+DZ论坛
  5. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第十三章 RS485实验
  6. 【精灵雪花特效】(HTML+JS+CSS+代码+效果)
  7. 美国计算机名校例如MIT ,CMU等招牌经典公开课程
  8. 夫妻相处10大禁忌:冲突时别找外人支持
  9. 【漫漫转码路】Python Day 03
  10. 快鱼吃慢鱼:浪潮服务器未来五年要争全球第一的背后