数轴上有n个闭区间[ai, bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。
如果区间i内已经有一个点被取到,我们称此区间已经被满足。我们先讨论区间包含的情况。由于小区间被满足时大区间一定也被满足。所以在区间包含的情况下,大区间不需要考虑。把所有区间按b从小到大排序(b相同时a从大到小排序),则需要考虑的区间的a值也是从小到大排好序的(其他区间都不需要考虑)。第一个区间应该取哪一个点呢?
我们的贪心策略是:取最后一个。
如果不是取最后一个,比如说灰色点,那么把它移动到最后一个点后被满足的区间增加了,而且原先被满足的区间现在一定被满足。不难看出,这样的贪心策略是正确的。