贪心
贪心
区间选点
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 5;
struct range{
int l, r;
bool operator< (const range &a) const{
return r < a.r;
}
}Range[N];
int main(){
int n; cin >> n;
for (int i = 0; i < n; i ++){
cin >> Range[i].l >> Range[i].r;
}
sort(Range, Range + n);
int cnt = 0, ed = -2e9; // 记录最后选取的点
for (int i = 0; i < n; i ++)
if (Range[i].l > ed){
cnt ++;
ed = Range[i].r; // 如果左端点大于我选取的点
}
cout << cnt << endl;
}最大不相交区间数量
区间分组
区间覆盖
最后更新于