P1258 小车问题

时间:2022-11-05 22:14:26

P1258 小车问题


蒟蒻精神自强不息蒟蒻精神永不言败加油加油ヾ(◍°∇°◍)ノ゙yeah yeah yeah

据说这是道小学奥数题抱歉蒟蒻的我没学过奥数,算了大概三大张演草纸,不得不说这题对于蒟蒻本人很是感人,废话不多说,分析一下:


我们很清楚坐车比跑路快,由于甲乙两人要同时到达B地,所以不能让一个人坐车而另一个在寒风中瑟瑟发抖地跑路。

SO,我们可以先让甲坐车一段路,然后中途把他放下来,让他自己完成生命中最后一段路,小车返途去接乙,(此时是相遇问题),接上乙以后载着瑟瑟发抖的乙看着寒风中瑟瑟发抖的甲,和甲一起到达终点。

我们设总时间为 x ,把甲放下来的时刻是 t ,那么列方程式:

b t + a ( x - t ) = s                                                                                     (1)

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

联立方程组(1)(2)解得:

x = ( 2 + ( b + a ) / ( a + b ) t

设     p = 2 + ( b + a ) / ( a + b )

故     x = p t                                                                                                      (3)

将 x 带入(1)解得:

t = s / ( b - a - a p )                                                                                  (4)

将(4)带入(3)求解 x

真是艰辛QWQ

代码如下

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
double x,t,p,a,b,s;
int main()
{
scanf("%lf%lf%lf",&s,&a,&b); p=+(b-a)/(a+b); t=s/(b-a+a*p); x=t*p; printf("%.6lf",x);
}

蒟蒻精神自强不息蒟蒻精神永不言败加油加油ヾ(◍°∇°◍)ノ゙yeah yeah yeah