解决一些区间的最大总长度的 O(n log n) 动态规划问题

solve O(n log n) dynamic programming question for max total length of some intervals

N 区间给出。 A_i= [S_i, F_i]表示每个区间的开始和结束时间。所有间隔的开始和结束时间是不同的。我们想要 maximize total length 个中午彼此重叠的选定时间间隔。

问题 1) 这个问题的 DP 逻辑是什么使用 O(n log n) 时间?

问题2)是不是等于加权区间表,权重变成区间长度?

因为你的问题中提到了maximize total length。 实际上经典的间隔调度算法适用于 maximum count 而不是 maximum length 所以 none 个选项总是有效

您需要按 F_i 对 A_i 进行排序,然后在每个步骤中按照从 i =0 到 n 的这种动态方法计算最大总和间隔 A_0 到 A_i 如果你想计算 A-i+1 有 2 种情况 A_i+1 与上一步中找到的最大总和没有重叠然后将它添加到总和如果有重叠则找到所有 A_i 谁与 A-i+1 重叠 O(lgn) (二进制搜索)并删除它们然后将 f(k)+A_i+1 与 A_i 进行比较并决定保留 A_i+1与否