题目描述
甲、乙两人同时从A地出发要尽快同时赶到B地。出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人。已知甲、乙两人的步行速度一样,且小于车的速度。问:怎样利用小车才能使两人尽快同时到达。
输入输出格式
输入格式:仅一行,三个数据分别表示AB两地的距离s,人的步行速度a,车的速度b。
输出格式:两人同时到达B地需要的最短时间,保留6位小数。
输入输出样例
输入样例#1:
120 5 25
输出样例#1:
9.600000
首先车带一个人行驶x段距离
然后丢下 折回找另外一个人 半路碰上 带回终点
刚好与第一人共到 根据这个策略 列出公式
(s-x)/a=2*(2*x/(a+b)-x/b)+(s-x)/b
化简最后得x=(b+a)*s/(b+3a)
最后时间即 x/b+(s-x)/a
——转载自
洛谷题解
#include<iostream>
#include<cstdio>
using namespace std;
double s,a,b,x;
int main()
{
scanf("%lf%lf%lf",&s,&a,&b);
x=(a+b)*s/(3*a+b);
printf("%.6f\n",x/b+(s-x)/a);
return 0;
}