题目大意:http://blog.csdn.net/snowy_smile/article/details/49535301

思路:分类讨论,分别在[1,2]、(2,3)、[3,4)、[4,1]相遇,然后再特判v1和v2的大小关系即可。

然后特别需要注意在(2,3)时候的二分了,因为我们二分非斜边的话,非斜边的增长速率大于斜边的增长速率

//看看会不会爆int!数组会不会少了一维!
//取物问题一定要小心先手胜利的条件
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define ALL(a) a.begin(), a.end()
#define pb push_back
#define mk make_pair
#define fi first
#define se second
#define haha printf("haha\n")
const double eps = 1e-;
const double len = 300.0;
const double duijiao = sqrt(1.0***);
double t, v1, v2;
int sign(double x){
return abs(x) < eps ? : (x > ? : -);
} bool work_2_3(){
double t1, t2;
double lb = 0.0, rb = 300.0;
for (int i = ; i <= ; i++){
double mid = (lb + rb) / 2.0;
t1 = sqrt(1.0** + mid*mid) / v1;
t2 = (300.0 + mid) / v2;
///if (sign(t1 - t2) > 0) rb = mid;
///else lb = mid;
if (sign(t1 - t2) > ) lb = mid;
else rb = mid;
}
t2 = (len - lb + len) / v2 + t;
t1 = (lb + len * 2.0) / v1;
if (sign(t1 - t2) > ) return false;
return true;
} bool work_3_4(){
double t1, t2;
double lb = 0.0, rb = 300.0;
for (int i = ; i <= ; i++){
double mid = (lb + rb) / 2.0;
t1 = (sqrt(1.0** + mid * mid)) / v1;
t2 = (len * 3.0 - mid) / v2;
if (sign(t1 - t2) > ) rb = mid;
else lb = mid;
}
t2 = (len + lb) / v2 + t;
t1 = (sqrt(len*len + (len-lb)*(len-lb)) + *len) / v1;
if (sign(t1 - t2) > ) return false;
return true;
} bool solve(){
///[1,2]
if (sign(v1 - v2) >= ) return true;
if (v1 == ) return false;
///[1,4]
double t1 = len / v1, t2 = len * 3.0 / v2;
if (sign(t1 - t2) >= ) return false; t1 = duijiao / v1;
t2 = len * 2.0 / v2;
if (sign(t1 - t2) >= ) return work_3_4();
else return work_2_3();
} int main(){
int kase; cin >> kase;
for (int i = ; i <= kase; i++) {
scanf("%lf%lf%lf", &t, &v1, &v2);
bool flag = solve();
if (flag) printf("Case #%d: Yes\n", i);
else printf("Case #%d: No\n", i);
}
return ;
}

二分三角形的时候尤其需要注意!!! HDU 5115 二分+模拟的更多相关文章

  1. hdu 4024 二分

    转自:http://www.cnblogs.com/kuangbin/archive/2012/08/23/2653003.html   一种是直接根据公式计算的,另外一种是二分算出来的.两种方法速度 ...

  2. hdu 1669(二分+多重匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1669 思路:由于要求minimize the size of the largest group,由此 ...

  3. HDU 3586 二分答案+树形DP判定

    HDU 3586 『Link』HDU 3586 『Type』二分答案+树形DP判定 ✡Problem: 给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏 ...

  4. hdu 4004 (二分加贪心) 青蛙过河

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4004 题目意思是青蛙要过河,现在给你河的宽度,河中石头的个数(青蛙要从石头上跳过河,这些石头都是在垂 ...

  5. (二分匹配“匈牙利算法”)无题II --HDU --2236

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2236 代码: #include<cstdio> #include<cstring> ...

  6. hdu 5046 二分+DLX模板

    http://acm.hdu.edu.cn/showproblem.php?pid=5046 n城市建k机场使得,是每个城市最近机场的距离的最大值最小化 二分+DLX 模板题 #include < ...

  7. HDU 5699 二分+线性约束

    http://acm.hdu.edu.cn/showproblem.php?pid=5699 此题满足二分性质,关键在于如何判断当前的时间值可以满足所有的运送方案中的最长的时间. 对于每一次枚举出的k ...

  8. hdu 3277(二分+最大流+拆点+离线处理+模板问题...)

    Marriage Match III Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  9. hdu 3081(二分+并查集+最大流||二分图匹配)

    Marriage Match II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. ValidationMessageFor验证

    一,在modle下的自己新建的PowerViewModel.cs下编辑错误显示 public class PowerViewModel    {        [Required( ErrorMess ...

  2. Ubuntur软件安装

    Ubuntu软件安装 Falsh sudo apt-get install flashplugin-installer

  3. Django的用户认证

    Django中用户登陆的实例: 逻辑流程 1.客户端发起请求,根据url规则会首先转至index函数, 2.在index函数上添加一个装饰器('@login_required',django自带).加 ...

  4. storm.yaml 配置项

    配置项 配置说明 storm.zookeeper.servers ZooKeeper服务器列表 storm.zookeeper.port ZooKeeper连接端口 storm.local.dir s ...

  5. digitalocean网站打不开,大陆无法正常访问怎么办?

    在中国大陆,由于某些恶心的原因,digitalocean官方网站经常出现无法打开,或者打开后网页异常的情况,如果你是一个新注册用户,你甚至会被吓到,一个全球知名的vps主机商网站可能是这样的: 我的天 ...

  6. chapter9_3 协同程序实现迭代器

    将循环迭代器视为"生产者-消费者"模式的一种特例:迭代器产生的数据供循环体消费. 因此,用协同程序写迭代器就理所当然了.因为协同程序可以一改传统调用者与被调用者之间的关系. 有了这 ...

  7. 调用CImg库显示WAV格式音频波形

    最近在做傅里叶变换和小波变换时经常要通过显示波形来检验算法,但通过visual studio之类显示波形又显得麻烦,而且不能跨平台. CImg是一个跨平台的C++的图像处理库,提供的图像处理等功能十分 ...

  8. c# 操作word demo

    /// <summary> /// 新创建word /// </summary> /// <param name="fileSaveDirectory" ...

  9. div盒布局

    最近在应用程序中内嵌webkit浏览器显示网页,网页的布局是自适应的,采用盒布局模型,能够实现较好的自适应效果. <style> html,body { height: 100%; mar ...

  10. C/C++宏定义中#与##区别 .

    // #表示:对应变量字符串化// ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符 #define U_BOOT_CMD_MKENT_COMPLETE(name,maxa ...