Trucks and Cities

Trucks and Cities

题解

二分板子题,虽然老师让我们用区间dp做。

先讲一下二分做法,对于每一辆车,我们已经知道了它在中途的可以加油的次数,故可以二分出每次最多走多少公里就要加一次油,然后就可以得到其油箱的最少容量。

知道了每辆车的最小量,那么总的容量就必须是其中最大的一个。

于是乎就可以用O\left(mnlog_{n} \right )的时间复杂度轻松卡过去了。

其实加上一些小优化就可以更轻松的跑过去了,详情请见代码

源码

火车头其实可以无视掉的

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pr
posted @ 2022-04-02 16:49  StaroForgin  阅读(9)  评论(0)    收藏  举报  来源