P1258 小车问题

数学问题

P1258

思路

当甲和乙都被车载过一次并且同时到终点最快,也就是车载甲到A点然后回去载乙,最后和甲于终点相遇

计算

  1. 甲的运动

    1. t1 = x/b
    2. t2 = (s-x)/a
    3. t甲 = x/b + (s-x)/a
  2. 车的运动

    1. 车在x处把甲放下
    2. 乙走了a*x/b
    3. 车和乙的距离 = x - a*x/b
    4. t相遇 = (x - a * x / b) / (a + b) = x * (b - a) / b * (a + b)
    5. 相遇点到起始点的距离 = a*x/b + a * t相遇 = ax/b + ax(b-a)/b(a + b)
  3. 乙的运动

    1. 一开始的运动时间t1 + t相遇 = x/b + x(b-a) / b(a+b)
    2. 剩余时间 s - a(t1 + t相遇) / b
    3. t乙 = t1 + t相遇 + t3
  4. t甲 = t乙 ——>

    (s - x) / a = x(b-a) / b(a+b) + (s - a(x/b + x(b-a)/b(a+b)))/b

    x = s(a+b)(b-a) / (2ab+b2-3a2)

    T = x/b + (s-x)/a = s(a+3b) / b(3a+b)

#include <iostream>
#include <cstdio>

using namespace std;

double s, a, b;

int main()
{
    scanf("%lf %lf %lf", &s, &a, &b);
    printf("%.6f\n", (s * (a + 3 * b)) / (b * (3 * a + b)));
    
    
    return 0;
}
posted @ 2025-07-30 22:17  Roin_Long  阅读(12)  评论(0)    收藏  举报