_what

博客园 首页 新随笔 联系 订阅 管理

与会场安排问题不同,这题要按区间左端点排序,然而垃圾的我并没有发现,一直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>啊,之前一直....
这个问题到这里就算结束了,与模拟样例搭配食用口感更佳。
posted on 2019-01-25 12:23  _what  阅读(273)  评论(0)    收藏  举报