今日模考T2BUG神秘TLE0分求助!(已解决)

image
image
image
image
神奇TLE代码:


#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define eb emplace_back
#define E emplace
#define ist insert
#define adv advance
#define ull unsigned long long
#define IN(a) freopen(a".in","r",stdin)
#define OUT(a) freopen(a".out","w",stdout)
#define FILE(a) IN(a),OUT(a)
#define FAST cin.sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define UP(a,b,c) for(int a = b;a<=c;a++)
#define DW(a,b,c) for(int a = b;a>=c;a--)
#define F(a,b,c,d) for(int a = b;c;a+=d)
#define W while
#define Ls(a) a<<1
#define Rs(a) a<<1|1
#define fi first
#define se second
#define mkp make_pair
#define IL inline
using namespace std;
int n,q;
set<pair<int,int> >st[200005];
vector<int>cnt;
set<int>st2;
signed main(){
	FAST;
	FILE("a");
	cin>>n>>q;
	int res = 0;
	W(q--){
		int op;
		cin>>op;
		if(op==1){
			int x;
			cin>>x;
			x--;
			st[x].E(cnt[x]++,res);
			st2.ist(res++);
		}else if(op==2){
			int x,l,r;
			cin>>x>>l>>r;
			x--,l--;
			for(auto it = st[x].lower_bound({l,0});
                it!=st[x].end()&&it->fi < r;
                st2.erase(it->se),it = st[x].erase(it));
		}else{
			int x;
            cin>>x;
            auto it = st2.begin();
            adv(it,x);
            st2.erase(st2.begin(),it);
		}
		cout<<st2.size()<<'\n';
	}
    return 0;
}

老师说vector要开n个?我再看看

是不是少了个r–?

ohno我是Joker,cnt忘resize了

此帖结

r不用–

我数组+队列+邻接表过了

我用并查集!然后炸了