小学期 传送带

本文介绍了一个结合贪心与排序策略的算法,用于计算带有传送带的大厅中,人物以最短时间抵达终点的策略。该算法考虑了人物的步行速度、跑步速度及多个不同速度的传送带,最终通过合理的跑步与步行组合实现最短时间到达。

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

小明的飞机快要赶不上了!
幸好大厅的路上有一些传送带。每个传送带都有一定的速度,传送带之间没有重叠。
小明自己行走的速度为w,如果传送带的速度为v的话,在传送带上走的速度就是w+v。
但是小明还是很着急,所以他决定跑一段时间t。他跑的速度是r,那么如果传送带的速度为v的话,在传送带上跑的速度就是r+v。
对于时间t,他不一定要连续跑,可以走走再跑。也不一定非要跑够t。
问小明至少需要多少时间才能到达终点。

输入第一行为用例数T,1<=T<=40。
每一组用例的第一行包含五个整数:
X:为大厅的长度,小明起始位于0,终点是X,1<=X<=1000000
W:为走路的速度
R:为跑步的速度,1<=W<R<=100
t:最多能跑t秒,1<=t<=1000000
n:传送带的个数
接下来的n行,表示n个传送带的详细信息。每行包含三个整数:Bi,Ei,Vi,分别表示传送带的起始位置、终止位置和速度,0<=Bi<Ei<=X,1<=vi<=100。任意两个传送带都不相交。
输出包含一个数字,表示至少需要多少时间。输出四舍五入到6位小数。


测试用例1:
测试输入:
3
10 1 4 2 2
0 1 1
9 10 1
10 1 4 1000 2
0 1 1
9 10 6
20 1 3 20 5
0 4 5
4 8 4
8 12 3
12 16 2
16 20 1
测试输出:
3.000000
2.300000
3.538095
题解:
把地面当做传送带,速度为0,长度为总路长减传送带长,这样就有n+1个传送带,然后把传送带排序,从小到大,可以用结构体,然后跑的时候就从先传送带速度小的跑,一直把能跑的时间跑完,然后再走。一道贪心+排序的题。

ac代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值