区间贪心
两个典型的问题:
区间不相交问题:给出N个开区间(x,y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。
区间选点问题:给出N个闭区间[x,y],求最少需要确定多少个点,才能使每个闭区间中都至少存在一个点。
策略:先将区间按照左端点从大到小排序,左端点相同则按照右端点从小到大排序。然后依次选择不与上一个区间相交的最右边的区间即可。
原理:对于排序后的区间a和b(a的左端点在b的左端点的右边),有两种情况:a包含于b,a不包含于b。对于第一种情况必然选择a,因为这样左右两边都更节省空间来放置更多的区间。而对于第二种情况,则依然选择a,因为a右端点比b右端点多出的部分已无法利用,不予考虑,而相较于b,a左端点少占用了空间,故必然选择a。(可以自己画图理解)
注意,由于所给区间的开闭以及现实的意义不同,在取下一个区间时,灵活判断所取区间端点是否可以重合。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。