贪心中的区间问题

前言

做题时要注意区间端点的开闭(等号问题),为了便于分析,我们假设以下的区间都是闭区间。
区间的重合,对于区间[L1,R1][L2,R2]
重合的情况有(转载):

而不重合的情况只有:

R1<L2L1>R2两种
判断区间重合的表达式为:!(R1 < L2 || L1 > R2) <=> (R1 >= L2 && L1 <= R2)
通常在做这类题目时,排序是少不了的

求最多的不重合区间数

策略:先对区间的右端点由小到大进行排序,然后在可选的区间(保证区间不重合),每次都选择右端点最小的。

区间的完全覆盖

给出若干个区间,用最少的区间去覆盖一个指定的区间,区间之间可重合
对区间的左端点由小到大进行排序,设置一个变量记录已经覆盖到的区间,然后在左端点小于已经覆盖到的区间的右端点的区间中右端点最大的那个区间,不断重复此过程,直到指定的区间被完全覆盖,此时所用区间数是最少的
简单的证明:要求所用区间最少,则所选区间的长度需要较大,所以对左端点进行排序,在保证左边能够被覆盖的基础上,尽量地向右推进。

总结

资料

区间调度问题详解

阅读更多
版权声明:欢迎转载 https://blog.csdn.net/suntengnb/article/details/79950477
个人分类: 贪心
上一篇Poj-1915 Knight Moves-双向广度优先搜索
下一篇POj-1845 Sumdiv-快速幂取模+质因数分解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭