Codeforces700A Fast As Possible(二分+找规律)
来源:互联网 发布:生化危机电影 知乎 编辑:程序博客网 时间:2024/05/24 01:41
http://codeforces.com/problemset/problem/700/A
题意是让你求最少多少时间,人速度v1,车速度v2,然后有n个人,车每次乘k个,所有人走完l的距离,最少时间。
题解:看着像个数学题,首先我们要发现,肯定是先乘k个人,然后到一个地方,放下来,让他们走,然后车子开会去,乘后面的人,然后追上前面的人,放下,开会去,乘后面的人这样
所以我们可以通过二分,二分总时间t,然后算出来人走多少时间x1,乘车多少时间x2,再发现,首先车子用
代码:
#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <string>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <sstream>#include <cstdlib>#include <iostream>#include <algorithm>#pragma comment(linker,"/STACK:102400000,102400000")using namespace std;#define MAX 100005#define MAXN 1000005#define maxnode 15#define sigma_size 30#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define lrt rt<<1#define rrt rt<<1|1#define middle int m=(r+l)>>1#define LL long long#define ull unsigned long long#define mem(x,v) memset(x,v,sizeof(x))#define lowbit(x) (x&-x)#define pii pair<int,int>#define bits(a) __builtin_popcount(a)#define mk make_pair#define limit 10000//const int prime = 999983;const int INF = 0x3f3f3f3f;const LL INFF = 0x3f3f;const double pi = acos(-1.0);const double inf = 1e18;const double eps = 1e-4;const LL mod = 1e9+7;const ull mx = 133333331;/*****************************************************/inline void RI(int &x) { char c; while((c=getchar())<'0' || c>'9'); x=c-'0'; while((c=getchar())>='0' && c<='9') x=(x<<3)+(x<<1)+c-'0'; }/*****************************************************/int n,l,v1,v2,k;bool check(double x){ int tmp=n/k; if(n%k!=0) tmp++; double x2=(l-x*v1)/(v2-v1); double x1=(x*v2-l)/(v2-v1); //cout<<x1<<" "<<x2<<endl; if(x1<=0||x2<=0) return false; double d=x2*v2-x2*v1; double y1=x2; double y2=d/(v1+v2); if(tmp*y1+(tmp-1)*y2<=x) return true; else return false;}int main(){ //freopen("in.txt","r",stdin); while(cin>>n>>l>>v1>>v2>>k){ if(n==k) printf("%.10f\n",l*1.0/v2); else{ double L=l*1.0/v2,R=l*1.0/v1; for(int i=0;i<100;i++){ double mid=(L+R)/2; if(check(mid)) R=mid; else L=mid; } printf("%.10f\n",L); } } return 0;}
0 0
- Codeforces700A Fast As Possible(二分+找规律)
- Codeforces700A As Fast As Possible 数学推理
- Codeforces 701D. As Fast As Possible(二分)
- As Fast As Possible
- div.2/D. As Fast As Possible<数学题,二分>
- CodeForces - 701D As Fast As Possible (数学推导)
- Codeforces Round #364 (Div. 2) D. As Fast As Possible 【二分+贪心+验证】
- codeforces round #364 div2 D As Fast As Possible 二分+贪心
- CF 700A As Fast As Possible
- codeforces 701 D. As Fast As Possible
- codeforces#364DAs Fast As Possible
- Codeforces Round #364 (Div. 2) D. As Fast As Possible(数学推导)
- Codeforces Round #364 (Div. 2) D As Fast As Possible(数学)
- zoj3870 找规律、二分
- Codeforces Round #364 (Div. 2) D. As Fast As Possible
- Codeforces Round #364 (Div. 1) A - As Fast As Possible
- Codeforces Round #364 (Div. 2) D. As Fast As Possible
- codeforces 364 div2 D As Fast As Possible
- lintcode merge-k-sorted-lists 合并k个排序链表
- Android自定义控件----WaterFallLayout
- django 静态文件路径设置
- codeforces 14D 个人搜索小进阶
- Leetcode-path-sum
- Codeforces700A Fast As Possible(二分+找规律)
- POJ 1035 Spell checker(字典)
- LightOJ 1245 Harmonic Number (II) <思维---数学>
- Scala 元组
- PAT-B 1039. 到底买不买
- [Leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal
- java多线程
- 线性表
- 23种设计模式(1):单例模式