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