二分三角形的时候尤其需要注意!!! 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 ...
随机推荐
- ACdream 1015 Double Kings
假设第一个人选的点为P,并且当作根,那么第二个人选的最优情况必然是根p连着的那些点中的一个.然后枚举一下P即可. #pragma comment(linker, "/STACK:102400 ...
- c# 使用 HttpWebRequest模拟登陆
c# 使用 HttpWebRequest模拟登陆(附带验证码) 分类: C# .net2010-06-04 00:50 35647人阅读 评论(43) 收藏 举报 c#exceptionstreams ...
- Eclipse Kepler maven工程配置JDK1.8
首先需要下载插件:"Help" --> "Market Place" --> Search for java 8 kepler. install J ...
- JavaScript的DOM(文档对象)基础语法总结2
1.getAttribute()方法,通过元素节点的属性名称获取属性的值. //语法 elementNode.getAttribute(name) //element(元素);Node(节点) //注 ...
- 浙大 pat 1023题解
1023. Have Fun with Numbers (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- AVL树 高度平衡的二叉查找树
1.What is AVL tree? AVL tree 是一种特殊的二叉查找树,,首先我们要在树中引入平衡因子balance,表示结点右子树的高度减去左子树的高度差(右-左),对于一棵AVL树要么它 ...
- 线索thread二叉树
对于一个普通的二叉树 我们可以很明显的看到,在一个二叉树中,会有许多的空结点,而这些空结点必然会造成空间的浪费,为了解决这个问题,我们可以引入线索二叉树,把这些空结点利用起来,利用 '^' 记录给定结 ...
- 【其他】MySql数据库的安装与卸载
一.安装 1.首先下载安装包,包含服务端和客户端 2.添加用户组.用户 secondary1:~ # groupadd mysql secondary1:~ # useradd -g mysql -d ...
- 【Loadrunner】初学Loadrunner——参数化设置(Xml类型)
不是所有类型的参数都是和XML类型,只有一段标准的XML语句块,而且需要选中整个完整的XML语句块才可以使用XML的参数化.单个变量是不适合XML的参数化的.在选择的时候需要选中XML语句块的起始标签 ...
- ECOS-Ecstore 后台管理地址修改
ECStore默认出厂的后台管理地址是: http://域名/index.php/shopadmin http://域名/shopadmin [配置过rewrite后,并开启伪静态] 如果想要更个性的 ...