码迷,mamicode.com
首页 > 其他好文 > 详细

小车问题

时间:2016-11-06 16:29:25      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:contract   一个人   blog   alt   cin   bsp   ica   另一个   display   

题目描述

甲、乙两人同时从A地出发要尽快同时赶到B地。出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人。已知甲、乙两人的步行速度一样,且小于车的速度。问:怎样利用小车才能使两人尽快同时到达。

输入输出格式

输入格式:

 

仅一行,三个数据分别表示AB两地的距离s,人的步行速度a,车的速度b。

 

输出格式:

 

两人同时到达B地需要的最短时间,保留6位小数。

 

输入输出样例

输入样例#1:
120 5 25
输出样例#1:
9.600000

车带一个人行驶x公里后 放下人A折回去载另一个人B
A被车运走的时候B也在走 走了aX/b
车返回时 与B相遇于y处 则y-ax/b=(x-y)/b ->  y=2ax/(a+b)
则车返回拉人再返回到x所用时间为2((2ax/(a+b)-ax/b)/a)
化简得到最后的式子
(s-x)/a=2(2x/(a+b)-x/b)+(s-x)/b;

另外:
技术分享
技术分享
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
//#define maxn 1005
using namespace std;
double s,a,b;
int main()
{
    cin>>s>>a>>b;    
    double x=(a+b)*s/(b+3*a);
    printf("%.6f",(x/b+(s-x)/a));
    puts("");
    return 0;    
}
第一种
技术分享
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
//#define maxn 1005
using namespace std;
double s,a,b;
int main()
{
    cin>>s>>a>>b;    
    printf("%.6f",(a+3*b)/(b*(b+3*a))*s);
    puts("");
    return 0;    
}
图片解法

 


小车问题

标签:contract   一个人   blog   alt   cin   bsp   ica   另一个   display   

原文地址:http://www.cnblogs.com/gc812/p/6035174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!