Saving James Bond - Easy Version 原创 2017年11月23日 13:07:33

06-图2 Saving James Bond - Easy Version(25 分)

This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the world's most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with crocodiles. There he performed the most daring action to escape -- he jumped onto the head of the nearest crocodile! Before the animal realized what was happening, James jumped again onto the next big head... Finally he reached the bank before the last crocodile could bite him (actually the stunt man was caught by the big mouth and barely escaped with his extra thick boot).

Assume that the lake is a 100 by 100 square one. Assume that the center of the lake is at (0,0) and the northeast corner at (50,50). The central island is a disk centered at (0,0) with the diameter of 15. A number of crocodiles are in the lake at various positions. Given the coordinates of each crocodile and the distance that James could jump, you must tell him whether or not he can escape.

Input Specification:

Each input file contains one test case. Each case starts with a line containing two positive integers N (100), the number of crocodiles, and D, the maximum distance that James could jump. Then N lines follow, each containing the (x,y) location of a crocodile. Note that no two crocodiles are staying at the same position.

Output Specification:

For each test case, print in a line "Yes" if James can escape, or "No" if not.

Sample Input 1:

14 20
25 -15
-25 28
8 49
29 15
-35 -2
5 28
27 -29
-8 -28
-20 -35
-25 -20
-13 29
-30 15
-35 40
12 12

Sample Output 1:

Yes

Sample Input 2:

4 13
-12 12
12 12
-12 -12
12 -12

Sample Output 2:

No
 1 #include<iostream>
 2 #include<math.h> 
 3 #include<vector>
 4 using namespace std;
 5 #define MaxN 101
 6 int flag=0;
 7 vector<int> visited(MaxN,0);
 8 struct node{
 9 int x;
10 int y;
11 };
12 struct Gnode{
13 int N;
14 int D;
15 node G[MaxN];
16 };
17 using Graph=Gnode*;
18 Graph buildGraph(){
19 int N,D,x,y;
20 cin>>N>>D;
21 Graph gra=new Gnode();
22 gra->N=N; gra->D=D;
23 gra->G[0].x=0; gra->G[0].y=0;
24 for(int i=1;i<=gra->N;i++){
25 cin>>x>>y; 
26 gra->G[i].x=x; gra->G[i].y=y;
27 }
28 return gra;
29 }
30 double distance(node n1,node n2)
31 {
32 return sqrt((n1.x-n2.x)*(n1.x-n2.x)+(n1.y-n2.y)*(n1.y-n2.y));
33 }
34 int finish(Graph gra,int v){
35 if(gra->G[v].x>=50-gra->D)
36 {flag=1;return 1;}
37 if(gra->G[v].x<=-50+gra->D)
38 {flag=1;return 1;}
39 if(gra->G[v].y>=50-gra->D)
40 {flag=1;return 1;}
41 if(gra->G[v].y<=-50+gra->D)
42 {flag=1;return 1;}
43 return 0;
44 }
45 void DFS(Graph gra,int v){
46 visited[v]=1;
47 if(finish(gra,v))
48     return;
49 for(int i=1;i<=gra->N;i++)
50 if(visited[i]!=1&&distance(gra->G[i],gra->G[v])<=gra->D)
51 DFS(gra,i);
52 } 
53 void Givenanswer(Graph gra){
54 int v;
55 if(gra->D>=50)
56 flag=1;
57 for(v=1;v<=gra->N;v++){
58 if(flag==0){  //cout<<distance(gra->G[v],gra->G[0])-7.5<<endl;
59 if(visited[v]!=1&&distance(gra->G[v],gra->G[0])-15<=gra->D)
60 {  DFS(gra,v);}
61 }
62 
63 }
64 if(flag==1) cout<<"Yes"<<endl;
65 else cout<<"No"<<endl;
66 }
67 int main()
68 {
69 Graph gra=buildGraph(); 
70 Givenanswer(gra);
71 return 0;
72 }
View Code

 

 

转载于:https://www.cnblogs.com/A-Little-Nut/p/8056106.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pandas 合并所有列_Python学习:Pandas库+练习资料

pandas包含数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷。pandas经常是和NumPy,Scipy以及数据可视化工具matplotlib一起使用的。pandas支持大部分NumPy语言风格的数组计算&#xff0c;但最大的不同在于pandas是用于处理表格型或异质型数据的。而NumP…

zabbix自动发现主机并加入组绑定模板

在被监控主机多的情况下&#xff0c;怎样将这些主机加入zabbix server进行监控呢&#xff1f;下面将介绍下zabbix自动发现功能 1、创建自动发现规则 创建“规则名称&#xff0c;配置ip范围及检查方式”&#xff0c;点击“增加”&#xff0c;完成自动发现规则的创建 2、加入组和…

kotlin 用协程做网络请求_中国电信营业厅: 感受 Kotlin 的 quot;加速度quot;

"我们手上是一个很成熟的项目&#xff0c;所以毫无疑问需要保留 Java 代码&#xff0c;目前只会在新开发的页面中使用 Kotlin&#xff0c;并已经感受到了它带来的便利。随着功能的迭代&#xff0c;我们相信更多的功能会转而使用 Kotlin。"—— 付迎鑫&#xff0c;电信…

拖动验证码插件

拖动验证码插件 效果图&#xff1a; 在验证前&#xff0c;提交弹出验证失败&#xff0c;验证后弹出验证成功。 文件结构&#xff1a; css&#xff1a; #drag{ position: relative;background-color: #e8e8e8;width: 300px;height: 34px;line-height: 34px;text-align: center; …

matlab padarray函数零,matlab padarray函数

1padarray功能&#xff1a;填充图像或填充数组。用法&#xff1a;B padarray(A,padsize,padval,direction)A为输入图像&#xff0c;B为填充后的图像&#xff0c;padsize给出了给出了填充的行数和列数&#xff0c;通常用[r c]来表示。padval表示填充方法。它的具体值和描述如下…

[知了堂学习笔记]_网络基础知识_1.OSI参考模型(网络七层协议)

OSI参考模型是国际标准化组织ISO制定的模型&#xff0c;把计算机与计算机之间的通信分成七个互相连接的协议层&#xff0c;如图&#xff1a; 1.1各层功能 1、物理层 最底层是物理层&#xff0c;这一次负责传送比特流&#xff0c;它从第二层数据接收数据帧&#xff0c;并将帧的结…

Linux版本配置环境变量,如何linux环境下配置环境变量过程图解

jdk下载地址&#xff1a;在linux环境下的root同级目录下配置software目录将下载好的jdk上传到software文件夹里面(我使用的操作软件是)到software这个目录下.输入命令:cd /software输入命令:ll就可以看到我们的jdk包解压文件解压命令 tar xzvf jdk-8u111-linux-x64.tar.gz解压之…

奔腾双核linux服务器,Dell推出双核心奔腾服务器

来自业内的消息&#xff0c;Dell近日推出了一台采用Intel双核心 Pentium D的服务器&#xff0c;这将给小型服务器带来更强的运算能力。Dell PowerEdge SC430 主要面向小型企业客户&#xff0c;价格在499美元起。相比PowerEdge SC420&#xff0c;Dell为 PowerEdge SC430 装配了两…

EasyPlayerPro Windows流媒体播放器(RTSP/RTMP/HTTP/HLS/File/TCP/RTP/UDP都能播)发布啦

EasyPlayerPro简介 EasyPlayerPro是一款全功能的流媒体播放器&#xff0c;支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放&#xff0c;支持本地抓拍、本地录像、播放旋转、多屏播放等多种功能特性&#xff0c;核心基于ffmpeg&#xff0c;稳…

ALSA声卡笔记2---ASoC驱动框架

1、简单了解一下ASOC 在嵌入式系统里面的声卡驱动为ASOC&#xff08;ALSA System on Chip&#xff09; &#xff0c;它是在ALSA 驱动程序上封装的一层 分为3大部分&#xff0c;Machine&#xff0c;Platform和Codec ,三部分的关系如下图所示&#xff1a;其中Machine是指我们的…

python之路_自定义属性、json及其他js补充

一、自定义属性 我们知道&#xff0c;在前端页面渲染的过程中&#xff0c;我们可能会需要用到一些后端传来的参数&#xff0c;这种参数的获取我们一般是通过模板语言渲染得到。但是当这些参数是在js文件中被用到&#xff08;js代码若是单独以文件形式被引用&#xff0c;模板语言…

C语言打印日历总结报告,C语言打印日历

应同学的要求&#xff0c;写了个日历&#xff0c;输入年份&#xff0c;输出12个月份的日历表&#xff0c;代码如下 &#xff1a;#includebool isLeap(int year){if((year%40 && year%100!0) || (year%4000))return 1;elsereturn 0;}void printCalendar(int year){int d…

java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别

回顾一下两个关键字&#xff1a;synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题&#xff0c;提供了一系列和并发处理相关的关键字&#xff0c;比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式&#…

qt用c语言编程 pdf下载文件,Qt 使用Poppler实现pdf阅读器的示例代码

开发环境 Qt5.5.1、Qt Creator 3.5.1Qt实现pdf阅读器和MFC实现pdf阅读器&#xff0c;其实原理都是差不多的。注意&#xff1a;这个是MinGW版本的Qt&#xff0c;也就是运行在GCC环境下的库&#xff0c;里面只包含 *.dll 和 *.a 。如果是Vistual Studio版本的Qt &#xff0c;那么…

C语言工厂方法模式,工厂函数模式 (C语言实现)

工厂模式属于创建型模式&#xff0c;大致可以分为三类&#xff0c;简单工厂模式、工厂方法模式、抽象工厂模式。二. 工厂方法模式所谓工厂方法模式&#xff0c;是指定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子…

光绘文件 c语言 解析,AltiumDesigner输出光绘文件

1、钻孔信息生成设置打开PCB文件&#xff0c;放置钻孔位图符号对应的孔大小的列表&#xff1a;切换到DrillDrawing层放置字符串&#xff0c;Place->string(PS)&#xff0c;此时按Tab键&#xff0c;在出现的Text文本框中点击下拉箭头&#xff0c;选择.Legend&#xff0c;OK。…

曼哈顿距离最小生成树与莫队算法(总结)

曼哈顿距离最小生成树与莫队算法&#xff08;总结&#xff09; 1 曼哈顿距离最小生成树 曼哈顿距离最小生成树问题可以简述如下&#xff1a; 给定二维平面上的N个点&#xff0c;在两点之间连边的代价为其曼哈顿距离&#xff0c;求使所有点连通的最小代价。 朴素的算法可以用O(N…

功能引导 android,Flutter实现App功能引导页

App功能介绍页&#xff0c;主要是由介绍app功能的几张图片和当前页指示符组成&#xff0c;如下效果我们来一步一步实现上面的界面,左右滑动切换显示功能页,这个可以通过PageView来实现,底部的指示符半透明覆盖在PageView上,开发过Android同学知道可以用Framelayout布局来实现&a…

ocp oracle 考试报名_获得Oracle认证对拓展职业前景的影响

知识就是力量通过考试和考试成绩固然很重要&#xff0c;但您在学习过程中所掌握的知识才是您职业成功的坚实基础。在备考过程中&#xff0c;获得的知识和经验才是您真正的财富。Oracle Certified Associate (OCA)&#xff1a;专员级别的认证能够证明学员具备基本技能&#xff0…

mac android 录屏软件下载,苹果录屏app下载 苹果录屏 for Android V2.1.3 安卓手机版 下载-脚本之家...

苹果录屏是一款不错的手机录屏软件&#xff0c;该软件能帮助你录制流畅清晰视频&#xff0c;实现屏幕内容实时同步录制&#xff0c;录制视频流畅清晰不卡顿&#xff0c;需要的朋友可以下载使用。应用介绍苹果录屏&#xff0c;是一款免费屏幕录制软件&#xff0c;能帮助你录制流…