【发布时间】:2017-08-02 18:53:31
【问题描述】:
假设您有 k
无法尝试所有可能的子集 2^k 不可行。 贪心方法按 a_i 排序(区间覆盖算法)和按 b_i 排序(最大不相交区间算法)不起作用 无法弄清楚是否有动态程序解决方案。 鉴于输入的大小,我认为解决方案应该是 O(k log k) 或 O(k)
示例 1. [1,4], [3,5], [5,9], [7, 18] 溶胶[3,5]u[7,18]
[1,2], [2,6], [3,4], [5,7] 溶胶[1,2]u[3,4]u[5,7]
[2,30], [25,39], [30,40] 索尔[2,30]
【问题讨论】:
-
区间数是多少,a_i,b_i的值最多是多少?
-
还请告诉您到目前为止您尝试了什么?
-
提示:您可以按左边框对它们进行排序并计算
dp[i]= 以i-th 段结尾的最大联合。如果您正确跟踪事件(或使用像段树这样的数据结构),则可以在O(k log k)时间内完成。
标签: algorithm intervals greedy cover