#include<bits/stdc++.h>
#define debug(a) cout<<#a<<"="<<a<<endl;
#define endl "\n"
using namespace std;
vector<pair<int,int>> v;
int result;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
while (n--) {
int l, r;
cin >> l >> r;
v.emplace_back(l, r);
}
// 排序
sort(v.begin(), v.end());
int rt = -1e9 - 10; // 初始化为较小的值,但不需要太大的负数
for (const auto& [l, r] : v) {
if (l > rt) {
// 不能合并,更新右端点
rt = r;
} else {
// 合并区间,更新右端点
rt = max(rt, r);
result++;
}
}
cout << v.size() - result << endl;
return 0;
}
区间合并——贪心(不过我没看出来qaq)
最新推荐文章于 2024-11-03 16:33:38 发布