问题描述
- 任务 j j j开始时间为 s j s_j sj,完成时间为 f j f_j fj,权重为 w j > 0 w_j > 0 wj>0。
- 两个任务如果执行时间没有覆盖,则两个任务是兼容的
- 目标:找到一个彼此兼容且权重最大的任务子集
-
动态规划求解思路( n l o g n nlogn nlogn)
将任务按照结束时间升序排列: f 1 ≤ f 2 ≤ ⋯ ≤ f n f_1 \leq f_2 \leq\dots\leq f_n f1≤f2≤⋯≤fn
设 p ( j ) p(j) p(j)是与任务 j j j相容的最大下标的任务,如: p ( 8 ) = 1 , p ( 7 ) = 3 , p ( 2 ) = 0 p(8)=1,p(7) = 3, p(2)=0 p(8)<