Problem
給 N 個區間 [l, r]
,每一次挑選一個區間 [a0, b0]
,接著可以找到另外一個區間 [ai, bi]
被 [a0, b0]
完全覆蓋 (a0 < ai < bi < b0),接著再對這個區間 [ai, bi]
再找一個被完全覆蓋的區間 [ai+1, bi+1]
如此迭代下去,當作一次操作。
請問至少要幾次,才能將所有區間挑選完。
Sample Input
|
|
Sample Output
|
|
Solution
對右端點進行遞增排序,對左端點進行次遞增排序,接著進行掃描算法,每一次放入的區間盡可能被之前的區間包含住,否則將會增加一次操作,也就是說要找盡可能接近的左端點來符合放入的區間。
這個操作方式,非常接近 O(n log n)
LIS 的思路。
|
|