HDU 1593: find a way to escape
find a way to escape
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1383 Accepted Submission(s): 504
这个湖是一个很规则的圆形,半径为R。此时0068正好在圆心位置。小船在湖中的速度为 V1,0068和elnil在岸上的速度都为V2。也就是说,如果0068在刚上岸的时候没被抓到,则他可逃脱。在任意时刻,0068和elnil都可以朝任何方向移动,但是0068不能一直呆上船上(会饿死的),elnil不能下水(他不会游泳)。假设0068和elnil都非常聪明,总能做对自己最有利的事情,而且两个人的体力都是无限的。
请问,0068最终能不能逃脱elnil的魔爪?
每组测试包含三个整数,R,V1,V2。
数据不会出现正好抓到的情况,所以你可不用太考虑临界点。
开始天真的以为只要0086往敌人的对角跑再判断就行了。。然后。。结果。。很显然就WA了。。
正确思想应该是这样的:
首先,我们知道角速度等于 速度除以半径,即:w = v / r
又因为,湖的半径不会变,且岸边人总是采取最好的策略,那么他的角速度就一定是 W2 = V2 / R
而湖中人想要能逃脱的话,他肯定会采取一种策略,就是 你以湖中心转多少角度,我就也转多少角度,
也就是说,你岸边人,只要我的角速度和你的一样,你就肯定和我,还有湖中心,三个点在一条直线上,但是我只要保持这个状态,然后向前划就可以了
因为岸边人相对于湖中心的半径是R,而湖中人最开始的半径是0,所以最开始出发时,只要湖中人,把握的好,他的角速度一定可以一直等于岸边人的,
也就是说,他能让岸边人,像站在原地一样,而他自己却已经离开了湖中心。
但是我们也知道,能保持这样的状态时有个条件的,那就是湖中人的角速度要大于等于岸边人的。
这个条件的边界就是 他们两个的角速度相等。即:
W1 = W2 ==> V1 / r = V2 / R ==> r =V1 * R / V2
从这里我们可以知道,当处于边界状态时,湖中人已经离开湖中心 r 的距离了。 而岸边人还是和他还有湖中心,三点成一直线,
那么, 假如R< r 那么此时他就一定能逃脱了。因为他上岸了,但是岸边人还过来不了,速度一样快的情况下,他肯定能逃。
而 假如 R> r 那么就要看 船速和人的速度了。
即: 假如在剩下的 R-r 的距离里,船划过去的时间是 (R-r )/ V1 要小于π * V2 /R 即岸边人冲到他的对岸的距离所用的时间。
那么,湖中人肯定就能逃掉。
假如大于的话, 那肯定就逃不了了。
#include<cstdio>
#include<string>
#include<cmath>
#include<cstring>
#include<cctype>
#include<cstdlib>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<list>
#include<algorithm>
#include<iostream>
#include<sstream>using namespace std;const double pi = 3.1415926;int main()
{double r, v1, v2, R;while( scanf("%lf%lf%lf", &r, &v1, &v2) == 3 ){R = ( v1*r ) / v2;double time_0086 = ( r - R ) / v1;double time_elnil = ( pi * r ) / v2;if( time_0086 < time_elnil )printf("Yes\n");else printf("No\n");}return 0;
}
HDU 1593: find a way to escape相关推荐
- HDU 3507:Print Article
HDU 3507:Print Article 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507 题目大意:给定$n$,$m$,输出序列$n$个数, ...
- Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队
目录 优先队列和PriorityQueue HDU 1873:看病要排队 java.util.Comparator 优先队列和PriorityQueue java.util.PriorityQueue ...
- HDU 6146:Pokémon GO
HDU 6146:Pokémon GO 题目 Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU 1593 find a way to escape
find a way to escape Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- HDU 1498:50 years, 50 colors(二分图匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=1498 题意:给出一个 n*n 的矩阵,里面的数字代表一种颜色,每次能炸掉一排或者一列的相同颜色的气球,问有哪些颜 ...
- HDU 4283:You Are the One(区间DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4283 题意:有n个数字,不操作的情况下从左到右按顺序输出,但是可以先让前面的数字进栈,让后面的数字输出,然后栈里 ...
- HDU 2444:The Accomodation of Students(二分图判定+匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=2444 题意:给出边,判断这个是否是一个二分图,并求最大匹配. 思路:先染色法求出是否是一个二分图,然后再匈牙利求 ...
- HDU 5025:Saving Tang Monk(BFS + 状压)
http://acm.hdu.edu.cn/showproblem.php?pid=5025 Saving Tang Monk Problem Description <Journey to t ...
- HDU 5794:A Simple Chess(Lucas + DP)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5794 题意:让一个棋子从(1,1)走到(n,m),要求像马一样走日字型并只能往右下角走.里 ...
最新文章
- 详解Pytorch的nn.DataParallel
- etymon word write alb pain high alt increase large agency ag lose weight fat assist out~3
- C# 模拟鼠标移动与点击
- Android 实现切换主题皮肤功能(类似于众多app中的 夜间模式,主题包等)
- 数据结构之顺序栈的一些基本操作
- html可视化布局工具_简介一些蜘蛛布局标签的饼图的绘制方法
- 模拟Post登陆带验证码的网站
- linux下exe软件反编译工具下载,ilspy.exe
- 3DMax的Vray模型如何导入到Unity
- 简单分析暴风影音的最新0DAY菜鸟版
- 怎么查询显卡hdmi接口版本_HDMI接口基础知识大扫盲
- C语言结业作业,2019年本科课程-C语言程序设计结业试卷(附答案).doc
- 研究生可以不用学英语?只要考研英语或六级分数高!
- 2.东软跨境电商数仓项目技术选型
- HTML 网页相关概念
- 阿里云后台运行python程序(后台运行scrapy爬虫)的方法
- 一、如何完全卸载Anaconda(如何下载Anaconda-Clean package)
- 机器学习------L1、L2规范化(L1 Regularization、L1 Regularization)
- 【Linux】Shell脚本
- Android音乐播放器开发(2)—登录