营救

【问题描述】

铁塔尼号遇险了!他发出了求救信号。距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里。

通过侦测,哥伦比亚号获取了一张海洋图。这张图将海洋部分分化成n*n个比较小的单位,其中用1标明的是陆地,用0标明是海洋。船只能从一个格子,移到相邻的四个格子。

为了尽快赶到出事地点,哥伦比亚号最少需要走多远的距离。

【输入格式】

第一行为n,下面是一个n*n的0、1矩阵,表示海洋地图

最后一行为四个小于n的整数,分别表示哥伦比亚号和铁塔尼号的位置。

【输出格式】

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

【输入样例】save.in

3

001

101

100

1 1 3 3

【数据范围】

N<=1000

代码:

2、营救

【问题描述】

铁塔尼号遇险了!他发出了求救信号。距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里。

通过侦测,哥伦比亚号获取了一张海洋图。这张图将海洋部分分化成n*n个比较小的单位,其中用1标明的是陆地,用0标明是海洋。船只能从一个格子,移到相邻的四个格子。

为了尽快赶到出事地点,哥伦比亚号最少需要走多远的距离。

【输入格式】

第一行为n,下面是一个n*n的0、1矩阵,表示海洋地图

最后一行为四个小于n的整数,分别表示哥伦比亚号和铁塔尼号的位置。

【输出格式】

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

【输入样例】save.in

3

001

101

100

1 1 3 3

【数据范围】

N<=1000

样例输入:

In:

10

0100110100

0001110010

1000000001

1000100011

0000101100

1000001100

1001010011

0000010100

0101010000

1001000001

1 7 10 2

Out:14

In:

代码:

#include

using namespace std;

#include

int n,jz[1001][1001],xq,xz,yq,yz;

int xx[]={0,0,1,-1};

int yy[]={1,-1,0,0};

int dis[1001][1001];

int dl1[1001],dl2[1001];

void BFS();

int main()

{

scanf("%d",&n);

char p[1001];

for(int i=1;i<=n;++i)

{

scanf("%s",p+1);

for(int j=1;j<=n;++j)

{

if(p[j]=='0')

jz[i][j]=0;

if(p[j]=='1')

jz[i][j]=1;

}

}

scanf("%d%d%d%d",&xq,&yq,&xz,&yz);

BFS();

printf("%d\n",dis[xz][yz]);

return 0;

}

void BFS()

{

int head=0,tail=1;

dl1[tail]=xq;

dl2[tail]=yq;

dis[xq][yq]=0;

while(head

{

++head;

int x1=dl1[head],y1=dl2[head];

for(int i=0;i<4;++i)

{

int x2=x1+xx[i],y2=y1+yy[i];

if(x2>=1&&x2<=n&&y2>=1&&y2<=n&&!jz[x2][y2])

{

jz[x2][y2]=1;

++tail;

dis[x2][y2]=dis[x1][y1]+1;

dl1[tail]=x2;

dl2[tail]=y2;

}

if(dl1[tail]==xz&&dl2[tail]==yz)

{

head=tail;

break;

}

}

}

}

转载于:https://www.cnblogs.com/csgc0131123/p/5290324.html

68.营救问题(广搜)相关推荐

  1. hrbust 1616 密码锁(广搜)

    分析:广搜,每个四位数作为一个状态,从每个状态扩展出其他的几种状态并累加步数之后加入队列. 1 #include <stdio.h> 2 #include <string.h> ...

  2. Hdu 1072 【广搜】.cpp

    题意: 给出一个n*m的矩阵, 0 表示不可走 1 表示可走 2 表示起点 3 表示终点 4 表示可走且走到这一步可以满血 某人一开始有6滴血,走一步少一滴..到0就死了.. 可以走到4的位置满血再走 ...

  3. hdu 2612 Find a way (广搜)

    Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. L ...

  4. Go 分布式学习利器(15) -- Go 实现 深搜和广搜

    强化语法,回顾算法. 通过Go语言实现 深度优先搜索 和 广度优先搜索,来查找社交网络中的三度好友关系(三度指的是一个节点到 其相邻节点 到 其相邻节点的节点 ,图递增三层好友关系). 涉及到的Go语 ...

  5. 搜索:广搜 词语阶梯

    问题描述以及解决过程如下导图 广搜实现如下 #include <iostream> #include <algorithm> #include <vector> # ...

  6. [NC23486]小A与小B 双向广搜

    题解:这个题属于走迷宫类型问题的一个升级版吧,不同之处在于一秒钟小A走一步,小B可以走两步,这两种事件是同时发生的,所以我们每秒钟让A扩散一步,让B扩散两步. 两个人走过的路径分别用 visited[ ...

  7. 【图论专题】BFS中的双向广搜 和 A-star

    双向广搜 AcWing 190. 字串变换 #include <cstring> #include <iostream> #include <algorithm> ...

  8. [数据结构] 迷宫问题(栈和队列,深搜和广搜)

    代码: #include <iostream> #include <string.h> #include <stack> #include <queue> ...

  9. UVA 122 Trees on the level 二叉树 广搜

    题目链接: https://vjudge.net/problem/UVA-122 题目描述: 给你一种二叉树的构造方法, 让你逐层输出二叉树的节点值, 如果不能够则输出"not comple ...

  10. [kuangbin] M - Find a way(简单广搜)

    题目链接:https://vjudge.net/contest/215603#problem/M 其中三维数组dis将两个广搜合并到了一起 #include<iostream> #incl ...

最新文章

  1. vscode 搭建go开发环境的13个插件的安装
  2. opencv 运动检测
  3. 打开浏览器不是主页_网络没问题但是浏览器打开主页却显示网络连接错误
  4. 出色性能服务器,浪潮服务器:演绎出色传输与存储性能
  5. Java SE 重点知识笔记
  6. delphi获取本地外网ip_端口转发什么原理?WAN,LAN区别?私有IP和公有IP区别?
  7. java和net共同点,Java和.NET中的垃圾回收机制比较
  8. 轨道运营管理专业自荐书_轨道运营管理专业主要是学习什么_毕业后薪资待遇怎么样...
  9. 树莓派智能家居-天气预报和实时温湿度监控
  10. 独立站现在好不好做?个人适合做跨境电商独立站吗?
  11. 巨蚁数字全息过山车利用科技创造收获
  12. Java后端开发框架
  13. 广东IPTV机顶盒安装第三方应用
  14. spring boot英语在线学习系统毕业设计-附源码211714
  15. C++银行管理系统源代码
  16. 使用insightface进行人脸识别批量下载图片
  17. Linux 下 Android NDK 编译 openssl
  18. 判断四个点是否在同一个平面上
  19. 深度学习炼丹术 —— Taoye不讲码德,又水文了,居然写感知器这么简单的内容
  20. 总结:机器学习中的基本数学知识

热门文章

  1. git 工具常用命令汇总
  2. Android系统Recovery工作原理之使用update.zip升级过程分析(四)
  3. 设计模式03-工厂方法
  4. C++ 学习笔记----基础篇
  5. 人要抱着希望才能活得好
  6. 如何拍好运动风人像?
  7. 50岁,投资理财方面接触较少,手上有280万,该如何操作?
  8. 很多家长学历不高,无法辅导孩子的家庭作业怎么办?
  9. 银行卡不销卡,对持卡人有没有什么影响?
  10. 公平的反义词是什么?