二分三角形的时候尤其需要注意!!! 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 ...
随机推荐
- CodeForces 698B Fix a Tree
并查集,构造. 先看一下图的特殊性,按照这种输入方式,一个点的入度最多只有$1$,因此,问题不会特别复杂,画画图就能知道了. 如果给出的序列中已经存在$a[i]=i$,那么随便取一个$a[i]=i$的 ...
- 第一百零八节,JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式
JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式 学习要点: 1.Global对象 2.Math对象 ECMA-262对内置对象的定义是:"由ECMASc ...
- UVa 10305 Ordering Tasks (例题 6-15)
传送门: https://uva.onlinejudge.org/external/103/10305.pdf 拓扑排序(topological sort)简单题 自己代码的思路来自: ==> ...
- jQuery判断滚动条是上滚还是下滚,且是否到达底部或顶部
jQuery判断滚动条是上滚还是下滚,且是否到达底部或顶部:http://www.haorooms.com/post/jquery_scroll_upanddown //滚动条滚动加载更多内容 //判 ...
- 2016年团体程序设计天梯赛-决赛 L1-1. 正整数A+B(15)
本题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空格分开.问题是A和B不一定是满 ...
- PAT 团体程序设计天梯赛-练习集 L1-016. 查验身份证
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
- ggplot2 theme相关设置—文本调整
在geom设置和scale设置之后,要想把图画的漂亮,theme设置是比不可少的 在theme 设置中element_text()是一项很重要的内容 element_text(family = NUL ...
- POJ 1082 Calendar Game(找规律博弈)
传送门 以下复制自此处:http://www.xuebuyuan.com/2028180.html 博弈论题目可以用寻找必败状态的方法解决. 第一个必败状态是2001.11.04.由此可以推出其他任何 ...
- Java 容器一些知识
一.Collection 1.static 方法: Collections.sort(List<T>):实现List排序功能 Collections.fill(List<T> ...
- 分享到QQ空间、新浪微博、腾讯微博和人人网
function shareys(type, url, title, img, content) { switch (type) { case "sina": url = &quo ...