Codeforces Round #366 (Div. 2) Thor

来源:互联网 发布:720音频恢复软件 编辑:程序博客网 时间:2024/04/29 19:01

题目链接:http://codeforces.com/contest/705/problem/C



比赛的时候莫名其妙的WA第四组数据,不知道为什么,比赛结束之后看数据,第四组数据量太大也不大想看,把之前写的vector改成queue,数组用的set集合,然后再交就过了……应该是哪里写丑了。

思路就是存储所有的数据在set集合中,通过不停的删除和增加来进行计算。

#include <set>#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 300000+5;int n,q,t,type,x,num;set<int> S;queue<int> Q[maxn];int main(){scanf("%d%d", &n, &q);for(int i=0; i<q; i++){scanf("%d%d", &type, &x);if(type == 1){Q[x].push(t);S.insert(t++);num++;}else if(type == 2){while(!Q[x].empty()){if(S.count(Q[x].front()) == 1){S.erase(Q[x].front());num--;}Q[x].pop();}}else{for(set<int>::iterator it = S.begin(); it != S.end(); ){if(*it < x){S.erase(it++);num--;}else break;}}printf("%d\n", num);}}


0 0
原创粉丝点击