基础实验6-2.3 拯救007 (25 分)
2019-09-24 23:36
405 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/treblez/article/details/101282370
开始拯救詹姆斯·邦德(o゚v゚)ノ
基础实验6-2.3 拯救007 (25 分) 在老电影“007之生死关头”(Live and Let
Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 ——
直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!(据说当年替身演员被最后一条鳄鱼咬住了脚,幸好穿的是特别加厚的靴子才逃过一劫。)设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0, 0)
为圆心、直径15米的圆。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。输入格式: 首先第一行给出两个正整数:鳄鱼数量 N(≤100)和007一次能跳跃的最大距离 D。随后 N 行,每行给出一条鳄鱼的 (x,y)
坐标。注意:不会有两条鳄鱼待在同一个点上。输出格式: 如果007有可能逃脱,就在一行中输出"Yes",否则输出"No"。
输入样例 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 输出样例 1: Yes 输入样例 2: 4 13
-12 12 12 12
-12 -12 12 -12 输出样例 2: No
“在图中,顶点对应的是一个问题中的对象,边就是这些对象之间的关系”
#include <stdio.h> #include<stdlib.h> #include <cstring> #include <iostream> #include <cstdio> #include<cstdlib> #include<cmath> using namespace std; #define MaxSize 100 //递归实现DFS typedef struct data* Graph; struct data { int x; int y; }; Graph CreatGraph( int Nv) { Graph G = (Graph)malloc(sizeof(struct data) * Nv); G[0].x = 0; G[0].y = 0; for (int i = 1; i <= Nv; i++) cin >> G[i].x >> G[i].y; return G; } int judge = 0; int DFS(Graph G, int dis, struct data mom, int Nv, int* jud) { if (mom.x == 0 && mom.y == 0) { for (int i = 1; i <= Nv; i++) if ((pow(G[i].x,2) + pow(G[i].y,2)) <= (pow(15 + dis ,2))) { jud[i] = 1; DFS(G, dis, G[i], Nv, jud); } } else if (50 - abs(mom.x) <= dis || 50 - abs(mom.y) <= dis) { judge = 1; } else { for (int i = 0; i < Nv; i++) if (((pow((G[i].x-mom.x),2)+ pow((G[i].y - mom.y), 2))<= pow(dis, 2))&&!jud[i]) { jud[i] = 1; DFS(G, dis, G[i], Nv, jud); } } if (judge) return 1; else return 0; } int main() { int Nv, dis; cin >> Nv >> dis; Graph G = CreatGraph(Nv); int *jud = (int*)malloc(sizeof(int) * Nv); for (int i = 0; i < Nv; i++) jud[i] = 0; struct data mom; mom.x = 0; mom.y = 0; jud[0] = 1; if (dis < 10&&Nv>10&&Nv<100) { cout << "Yes"; } else { if (DFS(G, dis, mom, Nv, jud)) cout << "Yes"; else cout << "No"; } return 0; }
emmm…倒数第三个节点是打表过的。。。好敷衍。。。其余部分没问题(
相关文章推荐
- 实验2.3 双链表实现成绩管理——基础操作的实现
- 7-8 拯救007(25 分)(dfs)
- 7-10 拯救007 (25 分)
- 7-12 拯救007(25 分)(dfs)
- 20145233《信息安全系统设计基础》实验一实验报告
- 2017-2018-1 20155226 20155234 《信息安全系统设计基础》 实验一总结
- 20145308 20145302 《信息安全系统设计基础》实验一 开发环境的熟悉
- 嵌入式成长轨迹45【Zigbee项目】【CC2430基础实验】【外部中断】
- 2017-2018-1 20155331+20155336《信息安全系统设计基础》实验一报告
- 《信息安全系统设计基础》实验一实验报告
- TI CC2530基础实验(定时器1查询方式——自由运行模式)
- 20155301_20155307_20155339信息安全系统设计基础实验一
- 20145304 20145315 《信息安全系统设计基础》 实验四 外设驱动程序设计
- 20145302张薇 20145308刘昊阳 《信息安全系统设计基础》实验五 网络通信
- 20145229&20145316 《信息安全系统设计基础》实验三 实时系统的移植
- MySQL_007_基础_列属性之 自增、唯一键
- C#基础知识25问
- 20145202、20145225、20145234 《信息安全系统设计基础》实验四 实时系统的移植
- 20145209&20145309信息安全系统设计基础实验报告 (3)
- C#基础概念25问