【推导】Codeforces Round #364 (Div. 2) D. As Fast As Possible

发布时间:2017-7-9 7:13:25编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"【推导】Codeforces Round #364 (Div. 2) 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 感兴趣的同学可以参考一下。

一种方法是二分总时间,复杂度O(nlogn)。

另外我们可以证明,当所有人同时到达终点的时候,是最优的,因为没有人的时间“浪费”了。

我们又发现,每个人的运动过程总是两段,要么是走路,要么是坐车。于是每个人的运动都是等价的(坐车的时间也相等,走路的时间也相等)。

这里借用一下这个推导,懒得写了。

(http://blog.csdn.net/say_c_box/article/details/52001850)

根据上面的过程得出d以后,于是有d*(组数-1)+l1=l,然后就可以解出l1,然后l1/v2+(l-l1)/v1就是答案,因为每个人的运动过程相同,我们只需要算第一组人的运动总时间即可。

#include<cstdio>using namespace std;int n,K;double l,v1,v2;int main(){	while(scanf("%d%lf%lf%lf%d",&n,&l,&v1,&v2,&K)!=EOF){		int zu=n/K+(n%K ? 1 : 0);		double l1=l*(v1+v2)/(2.0*v1*((double)zu-1.0)+v1+v2);		printf("%.10f\n",l1/v2+(l-l1)/v1);	}


上一篇:Linux内核态抢占机制分析【转】 - 张昺华
下一篇:iOS面试题汇总

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款