题意理解
飞机爬升总高度h,爬升完总时间不超过t,最大速度v,速度超过x乘客会耳鸣,求乘客在飞机爬升过程中,最长耳鸣的时长和最短耳鸣的时长。
问题分析
先计算平均速度 h/t,:
如果h/t < x,说明可以以理想速度完成爬升,耳鸣时长最短为0;设最长耳鸣时长为u,以无限接近x的耳鸣的速度飞完。整个过程都是耳鸣时长,为h/x。
如果h/t > x, 说明速度不够,有段距离必须以耳鸣速度爬升,耳鸣时长最短为(h-xt)/v;耳鸣时长最长t,就是全程耳鸣。
分开考虑最长和最短情况
其他
计算平均速度是关键,不然没法分清情况。
链接
https://github.com/xierensong/learngit/blob/master/timus/t1885.cpp