与会场安排问题不同,这题要按区间左端点排序,然而垃圾的我并没有发现,一直WA。
/**/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <stack>
#include <queue>
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const int maxn = 2e5 + 24;
const int mod = 1e9 + 7;
struct P {
int l, r;
bool operator < (const P &e) const {
return l == e.l ? r < e.r : l < e.l;
}
}e[maxn];
priority_queue<int, vector<int>, greater<int> > Q;
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >> e[i].l >> e[i].r;
sort(e, e + n);
Q.push(0);
for(int i = 0; i < n; i++) {
if(Q.top() < e[i].l) {
Q.pop();
Q.push(e[i].r);
}
else Q.push(e[i].r);
}
cout << Q.size() << endl;
return 0;
}
另,优先级队列按从小到大排序用的是priority_queue<int, vector<int>, greater<int> > Q;
加上greater<int>啊,之前一直....
这个问题到这里就算结束了,与模拟样例搭配食用口感更佳。
浙公网安备 33010602011771号