zoukankan      html  css  js  c++  java
  • P1258 小车问题

    就算不要求同时到达答案也是一样的,因为两人同时到达最省时间。

    而在任意时刻,可能是小车载着某个人在前面开,另一个人在后面走;也可能是两人都在走,小车在两人之间,去追在后面的那个人。这样两人走的路程和坐车的路程分别相同。

    其它情况肯定不优,而上面两种情况又可以把小车的折返全部搞到一起,如下图。

    (L) 是人坐车的路程。根据人和车路程不同时间相同列出等式。

    [frac{(2L-s+2L)}{b}=frac{s-L}{a}+frac{L}{b} ]

    [a(4L-s)=b(s-L)+aL ]

    [(3a+b)L=(a+b)s ]

    [L=frac{(a+b)s}{3a+b} ]

    算出 (L) 之后,代入算出人或车的时间即是答案。

    时间复杂度 (O(1))

    code:

    #include<bits/stdc++.h>
    using namespace std;
    #define Db double
    int main()
    {
    	Db s,a,b,l;
    	cin>>s>>a>>b;
    	l=(a+b)*s/(3.0*a+b);
    	cout<<fixed<<setprecision(6)<<l/b+(s-l)/a;
    	return 0;
    }
    
  • 相关阅读:
    Java 多线程系列02
    Java 多线程系列01
    java io流03 字符流
    java JDBC系列
    java io流02 字节流
    Helidon使用心得
    camel 解析
    Spring 源码分析
    java代码实现分页功能
    SpringBoot Tomcat启动报错
  • 原文地址:https://www.cnblogs.com/May-2nd/p/13891197.html
Copyright © 2011-2022 走看看