玄學的貪心問題,一般全憑直覺。
貪心問題沒有固定討論,沒有模板,見多了就好了,證明想法的正確性是很困難的,大多採用反證法。
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...