RT,link。我是参考的 lyd 的书写的。
大致思路如下:
dpidp_idpi 表示从 1 到 iii 全部覆盖的最小花费。dp 之前首先把每个牛按照结束时间从小到大排序,然后依次枚举进行转移。
dpbi=minj=ai−1bi−1dpjdp_{b_i} = \min\limits_{j=a_i-1}^{b_i-1} dp_{j}dpbi=j=ai−1minbi−1dpj
其中,aia_iai 是起始时间,bib_ibi 是结束时间。用线段树维护那个 min\minmin 即可。时间复杂度 O(nlogn)O(n \log n)O(nlogn)。
然后现在他 WA 了,调了好久,求助万能的谷民 Orz