區間問題 區間選點 區間問題 貪心

2021-10-10 13:03:00 字數 808 閱讀 3970

玄學的貪心問題,一般全憑直覺。

貪心問題沒有固定討論,沒有模板,見多了就好了,證明想法的正確性是很困難的,大多採用反證法。

905. 區間選點

貪心思路:

證明:

時間複雜度:o(n

logn

)o(nlogn)

o(nlog

n)**:

#include

#include

using

namespace std;

const

int n =

1e5+5;

struct range

}range[n]

;int

main()

;}sort

(range, range + n)

;int res =

0, ed =

-2e9

;for

(int i =

0; i < n;

++i)

if(ed < range[i]

.l)++res, ed = range[i]

.r;

cout << res << endl;

return0;

}

貪心 區間選點問題

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

貪心 區間選點問題

主要採用的就是貪心的思想,首先以每一段的右端點為判斷依據,通過重定義排序規則,使得排序規則是以右端點的大小來排序,然後通過遍歷整個陣列,如果左端點小於當前指定標誌位端點,說明這段是在點的內部範圍內的,就忽略,如果不是在當前指定標誌位端點,那麼就記錄端點數加一,同時更新標誌位端點為當前右端點。incl...

貪心問題 區間選點

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