你这么弱,这么水,你对得起ACMer这个称号吗?==这是我现在最想对自己说的话。今天是六一儿童节。而我们已经不小了。我是个妹纸(Orz...这么说怎么怪怪的),写得一手渣渣都算不上的代码,啥题也不会,都依赖解题报告,也不踏实学,逛淘宝,看电视剧,逛空间,聊QQ。。。(——这么说好像找到了自己渣的原因了)==,怎么说呢,诶。。好好学吧~~向着大牛靠近:
2014.6.1:
今天没好好做题,原定的CF也不想做,太颓废了,吃的一下午好撑还拉肚子了TT报应啊!~窝认了!。晚上来集训室尽捣鼓那破手机了。那就写一道前几天校赛的题吧:
游起来吧!超妹!
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 85 Solved: 5
[ Submit][ Status][ Discuss]
Description
夏天到了,无聊的超妹跑到了落雪湖里抓鱼吃。结果,游到湖的正中央时被湖边保安看到了,保安要抓住超妹。我们假设落雪湖是一个半径为r的圆形,超妹在圆形的正中心,速度为1.保安由于不会游泳所以只能沿着湖的边缘奔跑,速度为n.因为超妹在陆地上的速度是很快的,所以我们假设只要超妹到达岸边就能顺利溜走。假设两人都足够聪明,且体力无限。
Input
输入包含T组数据,每组数据包含两个正整数r,n(0<n,r<10^9),分别表示圆形的半径和保安的速度。
Output
每组数据输出一行,如果超妹能够逃脱则输出”Yes”,否则输出”No”(不输出引号)
Sample Input
2 1 1 50 50
Sample Output
Yes No
HINT
题目是中文的我就不解释啥了,直接说解法吧!话说这题我可是第一个A的哦**。**
这道题的关键是找到超妹的角速度和保安的角速度相同时距离圆心的r1,在此之前,超妹的角速度一定比保安的大,因为w=v/r1,
r很小的时候角速度就很大,超妹角速度很大的时候可以任意调整与保安的相对位置,即可以使自己到达在角速度与保安相同时所处的同心圆上时与保安的距离最大,这时超妹再沿直径方向游最短路径r-r1,时间最短为t1=((r-r1)/1.0)而保安要跑的距离是(PI*r),时间最短为t2=(PI*r/v)
此时只需要判断t1是否小于等于t2即可;
很多同学在做这题时想到的都是超妹在圆心处就与保安相距然后沿半径跑t1=r/1.0;而保安t2=PI*r/v;个人认为上述解法是这种思想的一种优化,即缩短了超妹起跑时距离岸边的距离。不多说了,有别的想法的童鞋请尽情发表意见,下面是AC代码:
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define PI 3.1415926
using namespace std;
int main()
{
int t;
double v2,w2,r,s,r1,r2;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf",&r,&v2);
s=PI*r;
w2=v2/r;
r1=(double)(1.0/w2);
r2=r-r1;
if(r2/1.0<=s/v2)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
明天又是新的一天。。希望别像今天这样颓废了。。加油↖(^ω^)↗。提前祝端午节快乐。。晚安男神!