六、图(上):Saving James Bond - Easy Version

2023-12-30 14:58
文章标签 version easy bond james saving

本文主要是介绍六、图(上):Saving James Bond - Easy Version,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 题目描述
  • 代码
  • 注意事项

题目描述

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

代码

#include<stdio.h>
#include<math.h>
#define MaxNum 100
#define Radius 7.5typedef struct Location Cro;
struct Location{int x;int y;
}CroLoc[MaxNum];int Visited[MaxNum] = {0};
int N,D;int FirstJump(Cro C)
{if ( pow(C.x,2) + pow(C.y,2) <= pow(Radius+D,2) )return 1;elsereturn 0;
}int Jump(Cro C1, Cro C2)
{if( pow(C1.x-C2.x,2) + pow(C1.y-C2.y,2) <= pow(D,2) )return 1;else return 0;
}int IsSafe(i)
{int x = CroLoc[i].x, y = CroLoc[i].y;if( x>=50-D || x<=D-50 || y>=50-D || y<=D-50 )return 1;else return 0;
}int DFS(i)
{int j,answer=0;Visited[i] = 1;if( IsSafe(i) )answer = 1;else{for(j=0;j!=N;++j){if( !Visited[j] && j!=i && Jump(CroLoc[i],CroLoc[j]) )answer = DFS(j);if(answer == 1) break;}}return answer;
}int main()
{scanf("%d %d",&N,&D);int i,answer;for(i=0;i!=N;i++)scanf("\n%d %d",&CroLoc[i].x,&CroLoc[i].y);for(i=0;i!=N;i++){if( !Visited[i] && FirstJump(CroLoc[i]) ){answer = DFS(i);if(answer) break;}}if(answer)printf("Yes");elseprintf("No");return 0;} 

注意事项

  1. 因为湖心小岛是有半径的不是一个点,所以第一次跳跃的判断方法和之后的不相同。
  2. 不需要建立图,直接用距离判断是否连通。
  3. 使用全局变量方便。先定义全局变量,然后赋值给全局变量。

这篇关于六、图(上):Saving James Bond - Easy Version的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/553205

相关文章

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

Learn ComputeShader 09 Night version lenses

这次将要制作一个类似夜视仪的效果 第一步就是要降低图像的分辨率, 这只需要将id.xy除上一个数字然后再乘上这个数字 可以根据下图理解,很明显通过这个操作在多个像素显示了相同的颜色,并且很多像素颜色被丢失了,自然就会有降低分辨率的效果 效果: 但是这样图像太锐利了,我们加入噪声去解决这个问题 [numthreads(8, 8, 1)]void CSMain(uint3 id

11991 - Easy Problem from Rujia Liu?

题意: 输入一串整型数列,再输入两个数k,v,输出第k个v的序号。不存在则输出0,如第一个样例 8 41 3 2 2 4 3 2 11 3 //第1个3,序号为2,输出22 4 //第2个4,不存在,输出03 2 //第3个2,序号为7,输出74 2 思路: struct num {

Unsupported major.minor version 52.0 错误解决方法

自己前些天的项目突然出现这个问题,经过仔细排查,发现有两个原因都会导致这个问题。 第一个就是POM文件中的dependency重复,如果使用的是maven导入,重复写入dependency就会出现该错误。 第二个是版本不匹配,即所引用的jar包太新,并不匹配你的jdk,因为我们正常用的都是jdk7,但是现在已经更新到jdk10了,好多最新版本最新版本的jar包都是基于最新的jdk编写,所以可以

【开发工具】开发过程中,怎么通过Easy JavaDoc快速生成注释。

文章目录 引言什么是Easy JavaDoc?Easy JavaDoc用来干什么?如何使用Easy JavaDoc?安装Easy JavaDoc配置Easy JavaDoc使用Easy JavaDoc生成注释 Easy JavaDoc与IDEA自带注释的区别IDEA自带注释Easy JavaDoc Easy JavaDoc的优缺点优点缺点 步骤 1:打开设置步骤 2:找到Easy JavaD

#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version

昨天编译文件时出现了Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~的错误。   在网上很容易找到了解决的方案,公布如下:   对着你的项目点击右键,依次选择:属性、配置属性、常规,然后右边有个“项目默认值”,下面有个MFC的使用,选择“在共享 DLL 中使

EasyConnect 现实 Harfbuzz version too old 解决方案

https://www.cnblogs.com/cocode/p/12890684.html