Week3 B 區間選點 貪心演算法

2021-10-03 22:08:47 字數 584 閱讀 3588

題目大意

數軸上有 n 個閉區間 [a_i, b_i]。取盡量少的點,使得每個區間內都至少有乙個點(同區間內含的點可以是同乙個)。

思路本題是一道貪心問題,解決問題的關鍵是尋找恰當的貪心的方法。這道題採用如下貪心方法:

為什麼上述做法可以實現選點最少呢?在按照上述方法排序後,我們從左往右想。對於第乙個區間,其中必然要選乙個點,而事實上,選哪個點都不會比選這個區間的右端點更優(畢竟,我們希望這個點也可以落在更多的其他的區間裡,而其他所有區間都至少有一部分在第乙個區間的右邊)。然後,我們把包含剛才選點的區間都去掉(這一部分任務已經完成)。於是我們又能找到從左到右第乙個區間,剛才的思路又是行的通的。

完整**

#include

#include

using

namespace std;

struct tuple

boolin(

int n)};

int n;

tuple t[

105]

;int main (

) cout

}

week 3 B 區間選點

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 乙個整數,代表選點的數目 21 5 4 63 1 32 5 4 6該題的貪心策略是 選取區間的最後乙個點...

week3 B 區間選點

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 output 乙個整數,代表選點的數目 sample input 215 46sample ...

week3 B 區間選點

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 運用貪心的策略,選擇的點可以讓數量最多的區間將它包含,所以我們要求出各區間交集,當交集不為空時在交集處找...