區間不相交問題

2021-10-18 22:54:24 字數 609 閱讀 7389

區間不相交問題:給出n個開區間(x,y),從中選擇盡可能多的開區間,使得這些開區間兩兩沒有交集。

1.如圖(a)所示,當i1區間包含於i2區間時,我們選擇i1。因為這樣會剩下更多空間留給其他區間。

2.如圖(b)所示,當區間不存在完全包含的關係時,按區間左端點從大到小排序(當然也可以按右端點排序,但是後續邏輯不一樣)。左端點最大的區間,其右端點也最大(因為不存在全包含關係,所以左端點最大的區間的右端,總存在一段不與其他區間重合的區域),圖中為i1。將i1與i2不重合的部分刪去後,就轉化為了圖(a)的形式,所以在i1和i2之間選擇i1。i1和i3同理。所以在圖(b)這種情況下,我們總是選擇左端點最大的區間

所以最後的邏輯就是:

1.將所有點按左端點從大到小排序,左端點相同的按右端點從小到大排序。

2.遍歷區間,並記錄上乙個被選中區間的左端點。

3.如果新區間的右端點小於上乙個被選中區間的左端點,則選中這個區間,更改上乙個被選中區間的左端點為當前選中區間的左端點。

貪心 選擇不相交區間問題

1.p1803 凌亂的yyy 線段覆蓋 題目描述 現在各大 oj 上有 n 個比賽,每個比賽的開始 結束的時間點是知道的。yyy 認為,參加越多的比賽,noip 就能考的越好 假的 所以,他想知道他最多能參加幾個比賽。由於 yyy 是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加 2 個及以...

選擇不相交區間

思路 為什麼要這樣做呢 首先分析一下題意,就是選擇盡量多的不相交區間,那麼我們就要去掉一些區間,使剩下 的區間不相交,那麼我們要去掉什麼樣的區間呢?我們假設區間 a1,b1 a2,b2 1,如果a1b2,我們說區間1包含區間2,那麼我們就要去掉區間1 2,如果a1 a2 b1 b2,這時候我們仍然要...

選擇不相交區間

選擇不相交區間題目描述 數軸上有n開區間 ai,bi 請選擇盡量多的 區間,使其兩兩不相交。輸入第一行n 之後n行,每行兩個數分別為ai,bi 輸出最多能選擇的區間個數 樣例輸入 31 3 2 43 5 樣例輸出2提示 對於20 的資料,n 10 對於50 的資料,n 1000 對於70 的資料,n...