贪心-区间分组
重点-证明
1. ans <= cnt && cnt <= ans => ans == cnt
2. 对于每一个区间,判断之前所有的区间有没有与之冲突的,如果全部冲突则只能重新开一个组,否则将其加入到某一个组中
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
const int N = 100010;
int n;
typedef pair<int,int> PII;
vector<PII> v;
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
int a, b;
cin >> a >> b;
v.push_back({a, b});
}
sort(v.begin(), v.end());
priority_queue<int, vector<int>, greater<int>> heap;
for (int i = 0; i < v.size(); i++) {
if (heap.size() == 0 || heap.top() >= v[i].first) heap.push(v[i].second);
else {
heap.pop();
heap.push(v[i].second);
}
}
cout << heap.size() << endl;
return 0;
}