如果使用 clear TLE,试试从外层数组 erase 试试
#include<bits/stdc++.h>
using namespace std;
int n;
int summ,siz[200005];
int k,b;
map<int,map<int,int> > m;
queue<int> que;
int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin >> n;
int op;
for(int i=1;i<=n;++i) {
cin >> op >> k >> b;
if(op==1) m[k][b]++,summ++,siz[k+100000]++;
else if(op==2) {
cout << summ-siz[k+100000] << '\n';
}else {
for(auto &i:m) {
if(i.first==k) {
summ-=(i.second[b]);
siz[k+100000]-=(i.second[b]);
i.second[b]=0;
continue;
}
summ-=siz[i.first+100000];
siz[i.first+100000]=0;
que.push(i.first);
// i.second.clear();
}
while(!que.empty()) {
m.erase(que.front());
que.pop();
}
}
}
return 0;
}