#P16937. [SGU331]Traffic Jam
[SGU331]Traffic Jam
题目描述
莫斯科堵车时最令人恼火的事情之一,就是司机总会突然变道,希望借此开得更快。现在考虑下面这个简化的数学模型,判断这种策略究竟能带来多大收益。
有一条包含 条车道的道路,车道编号为 到 。
在时刻 ,第 条车道向前移动的速度为:
。
始终满足 ,因此所有车道在任意时刻的速度都严格为正。
你可以在任意时刻从第 条车道切换到第 条车道。完成这次变道需要时间:
。
在变道所花费的这段时间中,你不会向前移动。
你在时刻 从第 条车道开始行驶,需要向前行驶总距离 。终点时所在的车道可以任意。
请求出完成这段距离所需要的最短时间,并给出一种达到该最短时间的换道方案。
输入格式
第一行包含两个整数 和一个实数 :
- ;
- ;
- 。
接下来 行描述各条车道。第 行包含两个整数 和一个实数 :
- ;
- 。
第 条车道在时刻 的速度为 。
输出格式
第一行输出完成距离 所需的最短时间。
第二行输出变道次数 。
要求:
。
题目保证总存在一种最优策略,使得变道次数不超过 。
接下来 行按照时间先后顺序输出每一次变道。每行包含:
new_lane time
其中:
new_lane表示变道结束后进入的车道编号;time表示这次变道开始的时刻。
如果存在多种最优方案,输出任意一种即可。
所有实数应尽可能高精度输出。评测程序会根据你输出的换道计划重新模拟整个过程;总行驶距离、变道时间区间不重叠等条件的误差均不能超过约 。因此建议至少输出小数点后 ~ 位。
样例 1
1 100 0.5
4 5 0
19.71726232777025
0
样例 2
3 100 0.5
4 5 0
2 5 0.5
0 5 0
19.052103083697858
4
2 3.6645304897691258
1 5.783185307179586
2 9.947715796948712
3 15.207963267948966
说明
在某一条车道 上从时刻 行驶到 时,前进距离为该时间段内速度函数的积分:
$\displaystyle \int_{t_1}^{t_2}\left(b_i+a_i\sin(t+\delta_i)\right)dt$。
变道期间只消耗时间,不产生前进距离。