codeforces 364 div2 D As Fast As Possible
2016-08-07 19:38
423 查看
题目大意:一群小学生从起点走到终点,期间雇了一辆车来载学生,但车可能坐不下那么多人,问所有学生到达终点最短时间。
最优方案是把第一批学生运到离起点x远的地方,然后车子返回运第二批,装着第二批人的车子追上第一批小学生,让第二批人下车和第一批人一起走,注意从头到尾整个过程小学生都是走着的而不是在原地发呆。。然后运第三批人重复这一过程,最优解就是最后一批人追上前面的人也就刚好到达终点了。然后我们来看一下这中间的奇妙性质,车子运第一批人,把第一批人放下来,这时第一批人和后面的人的距离是y的话那么这个距离就一直不变,且人群只分成两种既走在前和走在后的。很简单,小学生走路速度不变,并且车子是把后面的人运到前面所以间距不变。既然间距不变,那么车子返回装人并赶上前面一拨人的时间也是不变的,既车子第二次,第三次......往返的时间是不变的。
分析一波后,设最优解为t,把第一批学生运到离起点x远的地方,总装载次数floor(n/k)+1,除去第一次往返floor(n/k)次,列两个等式就得到t了。
最优方案是把第一批学生运到离起点x远的地方,然后车子返回运第二批,装着第二批人的车子追上第一批小学生,让第二批人下车和第一批人一起走,注意从头到尾整个过程小学生都是走着的而不是在原地发呆。。然后运第三批人重复这一过程,最优解就是最后一批人追上前面的人也就刚好到达终点了。然后我们来看一下这中间的奇妙性质,车子运第一批人,把第一批人放下来,这时第一批人和后面的人的距离是y的话那么这个距离就一直不变,且人群只分成两种既走在前和走在后的。很简单,小学生走路速度不变,并且车子是把后面的人运到前面所以间距不变。既然间距不变,那么车子返回装人并赶上前面一拨人的时间也是不变的,既车子第二次,第三次......往返的时间是不变的。
分析一波后,设最优解为t,把第一批学生运到离起点x远的地方,总装载次数floor(n/k)+1,除去第一次往返floor(n/k)次,列两个等式就得到t了。
#include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <algorithm> #include <vector> using namespace std; typedef long long ll; const int maxn=100000+6; int main() { int n,l,x,y,k; double v1,v2; scanf("%d%d%d%d%d",&n,&l,&x,&y,&k); v1=x;v2=y; int z= n%k?n/k+1:n/k; z--; double ans=((v1+v2)*l+v2*l*2*z)/( (v2-v1)*(v1+v2)+v1*(v1+v2)+v1*v2*2*z ); printf("%.10f\n",ans); return 0; }
相关文章推荐
- Codeforces Round #364 (Div. 2) D As Fast As Possible
- Codeforces Round #364 (Div. 1)A. As Fast As Possible(数学)
- codeforces round #364 div2 D As Fast As Possible 二分+贪心
- Codeforces Round #364 (Div. 2) D. As Fast As Possible 【二分+贪心+验证】
- 【Codeforces Round 364 (Div 2)D】【二分答案 or 公式推导】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 Round #364 (Div. 1) A. As Fast As Possible
- Codeforces Round #364 (Div. 2) D. As Fast As Possible __ binary search、方程 或解方程 直接解出答案
- Codeforces 700A As Fast As Possible(机智)
- Codeforces Round #364 (Div. 2), problem: (D) As Fast As Possible
- CodeForces 700A As Fast As Possible
- Codeforces Round #364 (Div. 2) D. As Fast As Possible
- codeforces 701 D. As Fast As Possible
- Codeforces Round #364 (Div. 2) D. As Fast As Possible
- 【推导】Codeforces Round #364 (Div. 2) D. As Fast As Possible
- CodeForces 725A 之 As Fast As Possible
- 【45.61%】【codeforces 701D】As Fast As Possible
- codeforces 700A As Fast As Possible 二分求和?我觉得直接解更好
- Codeforces Round #364 (Div. 2) D. As Fast As Possible(数学推导)