有一个含有n辆车的车队,当前距离终点的距离已知,有m个加速器,每个加速器在一个时刻只能给一辆车用,一旦使用就会使得其速度由1变成k,加速器可以重复使用,问最快所有车辆到达终点的时间。
思路:二分枚举所需的最短时间。
对于1辆车要用num个加速器
num*k+(ans-num)>=a[i]
num>=(a[i)-ans)/(k-1)
限制条件
1.加速器最多使用次数ans*m;
2.对于每辆车而言单位时间内只能用一次加速器 所以num<=ans
3.题意 单位时间内只能有m个加速器,由1.2知条件3成立
1 | #include <iostream> |
开始一直Time Limit Exceeded
对比了网上的代码 发现逻辑基本差不多(https://www.cnblogs.com/fanminghui/p/3993539.html)
后来偶然看到https://blog.csdn.net/barry283049/article/details/42679317 把cin,cout全部替换后accepted!
time limited 可能的原因
- 检查一下什么地方在什么数据下出现了死循环
- 否则还是考虑换个思路解题的好。TLE除了死循环就是算法问题。