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

洛谷P1258 小车问题 数学 推公式

时间:2017-05-29 21:42:49      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:scan   第一个   ble   std   print   return   ring   方案   lib   

s 表示 AB两地的距离 a 人的速度 b 车的速度
x 表示 车送第一个人送了多远


我们强制方案是这样
车先送第一个人到达距离起点 x 的地方
然后车回去接第二个人 接着车直接送第二个人到终点,这是两人同时到终点


解:设车带第一个人行x,那么折返与另一人相遇,另一人和车的总距离是2x,总速度是a+b,时间就是2x/(a+b),

人走的距离就是2ax/(a+b),应与第一个人被车扔下后走的距离s-x相等

s-x=2ax/a+b

2ax=as+bs-ax-bx

所以(3a+b)x=(a+b)s

 

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <cstdlib> 
 5 #include <string>
 6 #include <algorithm>
 7 #include <iomanip>
 8 #include <iostream>
 9 using namespace std ;
10 
11 double a,b,s,t,x ; 
12 
13 int main() 
14 {
15     scanf("%lf%lf%lf",&s,&a,&b) ; 
16     x = ( a+b ) * s /( 3*a+b ) ; 
17     t = x / b + ( s-x ) / a ;
18     printf("%.6lf\n",t) ;
19     return 0 ; 
20 }

 

洛谷P1258 小车问题 数学 推公式

标签:scan   第一个   ble   std   print   return   ring   方案   lib   

原文地址:http://www.cnblogs.com/third2333/p/6919019.html

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