1 區間選點 區間問題

2022-09-16 14:27:10 字數 1335 閱讀 3854

區間問題一般都需要對區間進行排序,對左端點排序,或對右端點排序,或雙關鍵字排序

然後需要

證明這樣的選法選出來的點數一定是符合答案的,且是選點最少的

首先按照這個方法來選的話,每乙個區間上一定選了乙個點,所以這種選法是一種合法的方案

然後這道題的最優解是指所有合法方案中的選點最少的,所以

所以ans = cnt

1 #include 2

using

namespace

std;

3const

int n = 100010;4

struct

range range[n];

7bool

cmp(range r1, range r2)

10int

main() ;17}

18 sort(range, range +n, cmp);

19int res = 0, ed = -2e9;

20//

ed表示上乙個點的下標

21for (int i = 0; i < n; i++) 26}

27 cout << res <

28return0;

29 }

905 區間選點(貪心)

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

hdu 4883 區間選點

昨天比賽的時候沒有做出來,本來是想用貪心的,但是貪了好久都沒有招,今天在網上搜了解題報告 好像說這是一類區間選點問題 有乙個好的做法 1 首先把題目中的時間全轉化為分鐘,那麼區間就在0 1440中間 2 對於n組人,有乙個si 和乙個ei,那麼開個陣列,cnt si d cnt ei d 3 也就是...

hdu 4883 區間選點

昨天比賽的時候沒有做出來,本來是想用貪心的,可是貪了好久都沒有招,今天在網上搜了解題報告 好像說這是一類區間選點問題 有乙個好的做法 1 首先把題目中的時間全轉化為分鐘,那麼區間就在0 1440中間 2 對於n組人,有乙個si 和乙個ei,那麼開個陣列,cnt si d cnt ei d 3 也就是...