优先队列

    xiaoxiao2021-03-25  104

    #include <bits/stdc++.h>

    using namespace std; const int maxn = 1000000 + 10; int vis[maxn]; int main() {     int T;scanf("%d",&T);     while(T--){         int n;scanf("%d",&n);         priority_queue<int,vector<int>,greater<int> >q;         memset(vis,0,sizeof vis);         char ope[4];         int x;         while(n--){             scanf("%s",ope);             if(ope[0] == 'b'){                 scanf("%d",&x);                 vis[x] ++;                 if(vis[x] == 1)q.push(x);             }             if(ope[0] == 'c'){                 scanf("%d",&x);                 vis[x] --;                 if(vis[x] == 1)q.push(x);             }             if(ope[0] == 'q'){                 while(!q.empty() && vis[q.top()] != 1){                     q.pop();                 }                 if(q.empty())puts("none");                 else printf("%d\n",q.top());             }         }     }     return 0;

    }

    题目见 http://blog.csdn.net/jnxxhzz/article/details/60966903

    set做法

    转载请注明原文地址: https://ju.6miu.com/read-16144.html

    最新回复(0)