Acwing 905 區間選點

2021-10-19 20:43:42 字數 1026 閱讀 1777

905. 區間選點

給定n個閉區間[ai,bi],請你在數軸上選擇盡量少的點,使得每個區間內至少包含乙個選出的點。

輸出選擇的點的最小數量。

位於區間端點上的點也算作區間內。

輸入格式

第一行包含整數n,表示區間數。

接下來n行,每行包含兩個整數ai,bi,表示乙個區間的兩個端點。

輸出格式

輸出乙個整數,表示所需的點的最小數量。

資料範圍

1≤n≤105,

−109≤ai≤bi≤109

輸入樣例:

3-1

1243

5

輸出樣例:

2
思路

將每個點的右邊界進行排序,每次選取有邊界作為乙個點,然後去進行乙個列舉。

主要思想

貪心 區間

#include

#include

using

namespace std;

typedef pair<

int,

int> pii;

#define l first

#define r second

const

int n=

1e5+10;

pii loc[n]

;bool

cmp(pii a,pii b)

intmain

(void);

}sort

(loc,loc+n,cmp)

;int reg=

-0x3f3f3f3f

;int cnt=0;

for(

int i=

0;icout<}

Acwing 905 區間選點

給定n個閉區間 ai,bi 請你在數軸上選擇盡量少的點,使得每個區間內至少包含乙個選出的點。輸出選擇的點的最小數量。位於區間端點上的點也算作區間內。輸入格式 第一行包含整數n,表示區間數。接下來n行,每行包含兩個整數ai,bi 表示乙個區間的兩個端點。輸出格式 輸出乙個整數,表示所需的點的最小數量。...

905 區間選點(貪心)

題目傳送門 題解思路參考大佬 給定 n 個閉區間 ai bi a i,b i ai b i 請你在數軸上選擇盡量少的點,使得每個區間內至少包含乙個選出的點。輸出選擇的點的最小數量。位於區間端點上的點也算作區間內。輸入格式 第一行包含整數 n 表示區間數。接下來 n 行,每行包含兩個整數ai,bi a...

1 區間選點 區間問題

區間問題一般都需要對區間進行排序,對左端點排序,或對右端點排序,或雙關鍵字排序 然後需要 證明這樣的選法選出來的點數一定是符合答案的,且是選點最少的 首先按照這個方法來選的話,每乙個區間上一定選了乙個點,所以這種選法是一種合法的方案 然後這道題的最優解是指所有合法方案中的選點最少的,所以 所以ans...