zoukankan      html  css  js  c++  java
  • C++ map & set

    山东第六届ACM省赛B题

    超时代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<string.h>
     4 #include<sstream>
     5 #include<string>
     6 #include<map>
     7 #include<iterator>
     8 
     9 using namespace std;
    10 map<int,int>mp;
    11 int main()
    12 {
    13     int T,n;
    14     cin>>T;
    15 
    16     while(T--)
    17     {
    18         mp.clear();
    19         cin>>n;
    20         getchar();
    21         char f;
    22         int v;
    23         map<int,int>::iterator it;
    24         for(int i = 0; i < n; ++i)
    25         {
    26             cin>>f;
    27             if(f=='q')
    28             {
    29                 for(it=mp.begin(); it!=mp.end(); it++)
    30                     if(it->second==1){
    31                         cout<<it->first<<endl;
    32                         break;
    33                     }
    34                 if(it==mp.end())cout<<"none"<<endl;
    35             }
    36             else if(f=='b')
    37             {
    38                 cin>>v;
    39                 mp[v]++;
    40             }
    41             else if(f=='c')
    42             {
    43                 cin>>v;
    44                 mp[v]--;
    45             }
    46         }
    47     }
    48     return 0;
    49 }
    View Code

    AC Code:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<string.h>
     4 #include<sstream>
     5 #include<string>
     6 #include<map>
     7 #include<iterator>
     8 #include<set>
     9 using namespace std;
    10 set<int> si; ///始终存放的是出现次数为 1 的元素,内部的元素自动的由set排序
    11 map<int,int>mp;
    12 int main()
    13 {
    14     int T,n;
    15     cin>>T;
    16     while(T--)
    17     {
    18         mp.clear();
    19         si.clear();
    20         cin>>n;
    21         getchar();
    22         char f;
    23         int v;
    24         map<int,int>::iterator it;
    25         for(int i = 0; i < n; ++i)
    26         {
    27             cin>>f;
    28             if(f=='q')
    29             {
    30                 if(!si.empty())cout<<*si.begin()<<endl;
    31                 else cout<<"none"<<endl;
    32             }
    33             else if(f=='b')
    34             {
    35                 cin>>v;
    36                 mp[v]++;
    37                 if(mp[v]==1)
    38                     si.insert(v);
    39                 else si.erase(v);
    40             }
    41             else if(f=='c')
    42             {
    43                 cin>>v;
    44                 mp[v]--;
    45                 if(mp[v]==1)
    46                     si.insert(v);
    47                 else si.erase(v);
    48             }
    49         }
    50     }
    51     return 0;
    52 }
    View Code
  • 相关阅读:
    mysql 分列或取子串
    Excel “20200504”文本格式转化为时间格式
    Mysql清空数据表
    python 做词云图
    Pandas操作excel
    python中zip()函数的用法
    Excel技能提升
    JS 学习笔记
    元类理解与元类编程 《Python3网络爬虫开发》中第九章代理的使用代码Crawler中代码的理解
    关于选择器注意的点
  • 原文地址:https://www.cnblogs.com/A--Q/p/6801350.html
Copyright © 2011-2022 走看看