二分三角形的时候尤其需要注意!!! HDU 5115 二分+模拟
题目大意: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 二分+模拟的更多相关文章
- hdu 4024 二分
转自:http://www.cnblogs.com/kuangbin/archive/2012/08/23/2653003.html 一种是直接根据公式计算的,另外一种是二分算出来的.两种方法速度 ...
- hdu 1669(二分+多重匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1669 思路:由于要求minimize the size of the largest group,由此 ...
- HDU 3586 二分答案+树形DP判定
HDU 3586 『Link』HDU 3586 『Type』二分答案+树形DP判定 ✡Problem: 给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏 ...
- hdu 4004 (二分加贪心) 青蛙过河
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4004 题目意思是青蛙要过河,现在给你河的宽度,河中石头的个数(青蛙要从石头上跳过河,这些石头都是在垂 ...
- (二分匹配“匈牙利算法”)无题II --HDU --2236
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2236 代码: #include<cstdio> #include<cstring> ...
- hdu 5046 二分+DLX模板
http://acm.hdu.edu.cn/showproblem.php?pid=5046 n城市建k机场使得,是每个城市最近机场的距离的最大值最小化 二分+DLX 模板题 #include < ...
- HDU 5699 二分+线性约束
http://acm.hdu.edu.cn/showproblem.php?pid=5699 此题满足二分性质,关键在于如何判断当前的时间值可以满足所有的运送方案中的最长的时间. 对于每一次枚举出的k ...
- hdu 3277(二分+最大流+拆点+离线处理+模板问题...)
Marriage Match III Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 3081(二分+并查集+最大流||二分图匹配)
Marriage Match II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
随机推荐
- ubuntu 安装python mysql模块
Installation Starting with a vanilla Lucid install , install pip and upgrade to the latest version: ...
- 2016 Technology
rem 62.5%在chrome谷歌和其他浏览器不一样 http://www.5imoban.net/jiaocheng/div+css/201512191529.html http://blog.c ...
- apache 安装mod_rewrite
如果你的服务器apache还没有安装,那很简单,在编译apache时将mod_rewrite模块编译进去就可以.如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在ap ...
- aws部署从无到有
第一次进入aws控制台的时候傻眼了,密密麻麻的菜单都不知道该选哪一个.无从下手 查了好久才找到,就从EC2入手吧,点击后EC2后进入下面页面 点击启动实例,这个页面就亲切多了.不在像看天书了. 本人最 ...
- React - Stores
Event emmiters that make data available, handle business logic, send events to React, and listen for ...
- C#读取和写入文件
一.读取文件 如果你要读取的文件内容不是很多, 可以使用 File.ReadAllText(FilePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding) ...
- C++对象模型笔记之程序设计模型
C++程序设计模型支持三种程序设计模型 1.程序模型(procedural model) 可以理解为过程化模型,就像C一样 2.抽象数据类型模型(ADT) 数据结构教材里有说过,查了下资料也不是很明确 ...
- 屏幕录像专家2014 v0318 免费版
软件名称: 屏幕录像专家2014软件语言: 简体中文授权方式: 免费试用运行环境: Win8 / Win7 / Vista / WinXP软件大小: 7.9MB图片预览: 软件简介:屏幕录像专家201 ...
- ubuntu 下配置vim for python
apt-get install vim-gnome apt-get install ctags apt-get install vim-scripts vim-addons install tagli ...
- php 图像处理类
<?php/** file: image.class.php 类名为Image 图像处理类,可以完成对各种类型的图像进行缩放.加图片水印和剪裁的操作. http://www.lai18.com ...