zoukankan      html  css  js  c++  java
  • 【推导】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
    ",l1/v2+(l-l1)/v1);
    	}
    	return 0;
    }
  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1046 Shortest Distance (20)
    1061 Dating (20)
    1041 Be Unique (20)
    1015 Reversible Primes (20)(20 分)
    pat 1027 Colors in Mars (20)
    PAT 1008 Elevator (20)
    操作系统 死锁
    Ajax的get方式传值 避免& 与= 号
    让IE浏览器支持CSS3表现
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/7117540.html
Copyright © 2011-2022 走看看