题目说明:

在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!

设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0, 0) 为圆心、直径15米的圆。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。

输入格式:
首先第一行给出两个正整数:鳄鱼数量 N(≤)和007一次能跳跃的最大距离 D。随后 N 行,每行给出一条鳄鱼的 ( 坐标。注意:不会有两条鳄鱼待在同一个点上)。

输出格式:
如果007有可能逃脱,就在一行中输出"Yes",否则输出"No"。

图的顶点:小岛,鳄鱼,岸边

对图中每一个结点,判断如果该节点没有访问过且能到达,就从该节点深度优先遍历,如果从该节点可以跳到岸边,退出循环,是安全的。

深度优先遍历时,对每一个访问的结点设置该节点已经访问过,并判断从该节点是否可以一次跳到岸边,可以的话直接返回,否则,对其他结点判断,如果该节点可以到达且没有访问过,就对这个结点进行深度优先遍历。

void Save007(Graph G)
{for (each V in G){//visited[V]==true表示该结点已经访问过了,FirstJump(V):可以到达结点Vif (!visited[V] && FirstJump(V)){answer = DFS(V);if (answer == YES) break;}}if (answer == YES) output("Yes");else output("No");
}int DFS(Vertex V)
{visited[V] = true;if ( IsSafe(V) ) answer = YES;//IsSafe(V):判断在V点是否能到达岸边else{for (each W in G)if (!visited[W] && Jump(V,W)){answer = DFS(W);if(answer == YES) break;}}return answer;
}

参考博文:https://www.cnblogs.com/X-Do-Better/p/9048604.html

【图(上)】拯救007相关推荐

  1. 【数据结构笔记22】图的遍历例题:拯救007(应用DFS)、六度空间(应用BFS)

    本次笔记内容: 6.3 应用实例:拯救007 6.4 六度空间 文章目录 拯救007 题目与分析 题目 分析 总体算法 六度空间(Six Degrees of Separation) 题目 算法思路 ...

  2. PTA_拯救007 (25 分)【简单DFS+特判】

    题目链接:7-9 拯救007 (25 分) AC代码: 代码中有注释 #include<iostream> #include<algorithm> #include<cs ...

  3. 基础实验6-2.3 拯救007 (25分) [浙大版《数据结构学习与实验指导(第2版)》]

    题目连接:基础实验6-2.3 拯救007 (25分) 在老电影"007之生死关头"(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一 ...

  4. L2-1 拯救007(升级版)

    L2-1 拯救007(升级版) (25 分) 在老电影"007之生死关头"(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大 ...

  5. python 一张图画多条线_Gnuplot.py在一张图上绘制多条线

    我目前正试图使用gnuplot py从文本文件中绘制多行.我可以分别绘制两条线,但当我试图在同一个图上绘制它们时,它只绘制一条线.在 这是我的代码:#!/usr/bin/env python impo ...

  6. tensorboard图上存在直线_高中数学必修二直线与圆:真是让我没想到,他俩的关系还挺不简单...

    为什么有些题目看着复杂,看一眼就想烧了卷子.听老师一讲,然后一个有趣的事情就发生了,原来这么简单,哎哟,这方法不错,老师还挺聪明,给你点个赞. 首先承认一点,大家智商基本没有太大差异,老师也好,学生也 ...

  7. ICML2020 | 基于贝叶斯元学习在关系图上进行小样本关系抽取

    今天给大家介绍来自加拿大蒙特利尔大学Mila人工智能研究所唐建教授课题组在ICML2020上发表的一篇关于关系抽取的文章.作者利用全局关系图来研究不同句子之间的新关系,并提出了一种新的贝叶斯元学习方法 ...

  8. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、在折线图上为每个数据点添加日期数据标签

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.在折线图上为每个数据点添加日期数据标签 目录

  9. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、在折线图上为每个数据点添加数值标签

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.在折线图上为每个数据点添加数值标签 目录

  10. R语言ggplot2可视化在箱图上添加分组样本个数

    R语言ggplot2可视化在箱图上添加分组样本个数 目录 R语言ggplot2可视化在箱图上添加分组样本个数 #数据预处理

最新文章

  1. javascript数据结构与算法-队列
  2. S60 V3版SDK的官方扩展插件
  3. 基于Matlab的声波信号处理,基于声卡和Matlab平台的语音信号增强处理系统
  4. 自动驾驶发展调查:产业化还需技术“破冰”
  5. html中怎么实现广告自动出来又自动隐藏?,基于jquery实现的定时显示与隐藏div广告的实现代码...
  6. 面向业务和面向硬件编程
  7. python替代技术,Python超级方法和调用替代品
  8. SAP Odata服务里filter的用法
  9. 《深入浅出WPF》笔记——绑定篇(一)
  10. IntelliJ IDEA 2020.1 快速查找文件
  11. NavigationBar的显隐和颜色设置
  12. iPhone清理喇叭灰尘_手机喇叭用久了灰尘多,与其经常换手机,不如自己动手清理...
  13. [转]如何配置和使用Tomcat访问日志
  14. c语言程序代码分享,一些简单的C语言程序代码(最新整理)
  15. 洞察药监局数据,挖掘万亿价值
  16. [sklearn机器学习]线性回归模型
  17. 如何将多个Excel 表合并成一个
  18. 画出使用回溯法解0/1背包问题的解空间树
  19. 诚之和:裁员、关店,贝壳内部正在发生一场博弈?
  20. 单点登录系统的设计与实现方案

热门文章

  1. 探索Redis事务回滚
  2. 如何用计算机模拟一个生命,计算机模拟生命形式进化出基本智能
  3. 最小二乘法(LS算法):实际为L2范数的一个具体应用(计算残差平方和)
  4. 解决plsql中文乱码问题
  5. buildroot学习(九)——at91sam9g45软件平台更新
  6. 买入苹果公司股票的三个理由
  7. 省选专练之文艺计算姬
  8. 微信小程序登陆页跳转tabBar页
  9. 电商小程序可以实现什么功能_分享电商小程序的作用
  10. 活动报名 2022 WAIC | 认知大模型的研究与应用