#模拟#(洛谷 1258)小车问题

本文介绍了一个有趣的协同出行问题,即如何通过一辆仅能载一人的小车帮助两个人以最短时间同时抵达目的地。文章提供了算法实现代码,并详细解析了算法背后的数学原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

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


代码如下

#include <cstdio>
using namespace std;
double s,v1,v2,x;
int main(){
    scanf("%lf%lf%lf",&s,&v1,&v2);
    x=(2*v1*s)/(v2+3*v1);
    printf("%.6lf",x/v1+(s-x)/v2);
    return 0;
}

分析

首先x表示的是小车停的地方,所以输出走路的时间+坐车的时间
然后关键是怎样求这个停车的地方。
|——x——|——s-2x——|——x——|
x/a=(s−x+s−2x)/bx/a=(s-x+s-2x)/bx/a=(sx+s2x)/b
x=(2∗a∗s)/(a∗3+b)x=(2 * a * s) / (a * 3+b)x=(2as)/(a3+b)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值