【贪心】各种覆盖问题

1、独立区间问题

在N个区间里找出最多的互不覆盖的区间

对结束点进行排序,然后从结束点最小的区间开始进行选择即可

 

2、覆盖区间问题

给一个大区间,再给出N个小区间,求出最少用多少个区间可以把大区间覆盖完

先选出开始的一个,然后选开始点在这个区间里结束点最大的区间,然后以次类推

 

3、区间的最小点覆盖

给出N个区间,算出最小的点数使得每个区间里至少有一个点

法1)对结束点进行排序(从小到大),然后依次将各个区间的最后点标号(必须判断其是否已标记)

法2)对开始点进行排序(从大到小),然后依次将各个区间的开始点标号(必须判断其是否已标记)

法3)先将包含了其他区间的区间除去,然后对开始点进行排序,然后从小到大对结束点标记(必须判断其是否已标记)

 

4、点的最小区间覆盖

给出N个点,用M个区间进行覆盖,使区间总常最小

将相邻点之间差距由大到小排序,用个大区间将所有点覆盖,然后再将差距大的依次断开

——The Solution By AutSky_JadeK(From SDOI).

你可能感兴趣的:(问题)