天天看点

浅谈一些有趣的区间问题

浅谈一些有趣的区间问题

本篇随笔浅谈一下算法竞赛中一些有趣的区间问题。

一、最短区间点覆盖

给定一些点,用不超过\(m\)个区间将其全部覆盖,要求区间长度最短。

解决方法:

考虑\(m\)的限制,显然,\(n\)个区间就可以使得其全部覆盖,区间总长度为0.所以\(m\)一定比\(n\)小,否则没有意义。

正向思考不是很容易。我们反着来。

现在只有一个区间包含了所有的点。现在我们要拆成两个区间,那么这个就变成了一个断边的过程。根据贪心,每次肯定要断掉一个最长的线段。

以此类推,直到\(m\)都用完即可。

二、最少区间数区间覆盖

给定一个大区间和一堆大区间的子区间,需要从中挑选出最少的区间来全部覆盖这个大区间,可以重复覆盖。

解决方法,还是贪心,看看一个区间能最广拓展到哪个点,以此类推。