【题目链接】
【解题思路】
我们先来思考【P2493】,考虑用动态规划来做。
为了使动态规划没有后效性,我们需要先对演讲的时间按照一定的顺序来排序,这样我们就可以保证动态规划是单调递增的。
我们按照右端点从小到大排,到时后就可以找出一个第一个比左端点大的,就可以进行状态转移。
我们定义 d i d_i di 为排序后前 i i i 个演讲的最长时间,则 d i = d_i= di= 不选当前演讲即 d i − 1 d_{i-1} di−1,以及在前面选一个结束时间可以接上当前开始时间的数中的最大值。
动态转移方程
d i = max ( max j = 1 i − 1 { d j + t 2 i − t 1 i } , d i − 1 ) d_{i}=\max(\max\limits{_{j=1}^{i-1}}\{d_{j}+t2_i-t1_i\},d_{i-1}) di=max(maxj=1i−1{
dj+