• 数据结构multiset hdu-2275-Kiki & Little Kiki 1


    题目链接:

    http://acm.hdu.edu.cn/showproblem.php?pid=2275

    题目意思:

    有两种操作:

    1、push a 把a放进数组里。

    2、pop a 输出不超过a的最大的数,并去掉。

    解题思路:

    用multiset可以过。

    对于操作二先判断容器里面有没有该数,有的话直接输出。没有的话,把a放进容器里,然后查a的位置,-- 得到上一个的位置,最后删除两个迭代器。

    代码:

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    #include<cstdlib>
    #include<string>
    #include<cstring>
    #include<algorithm>
    #include<vector>
    #include<map>
    #include<set>
    #include<stack>
    #include<list>
    #include<queue>
    #define eps 1e-6
    #define INF 0x1f1f1f1f
    #define PI acos(-1.0)
    #define ll __int64
    #define lson l,m,(rt<<1)
    #define rson m+1,r,(rt<<1)|1
    //#pragma comment(linker, "/STACK:1024000000,1024000000")
    using namespace std;
    
    /*
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    */
    char ki[10];
    multiset<int>mys;
    
    int main()
    {
       int n,d;
       multiset<int>::iterator it1,it;
    
       while(scanf("%d",&n)!=EOF)
       {
          mys.clear();
          for(int i=1;i<=n;i++)
          {
             scanf("%s%d",ki,&d);
             if(ki[1]=='u')
                mys.insert(d);
             else
             {
                if(mys.empty()||d<*mys.begin())
                {
                   printf("No Element!
    ");
                   continue;
                }
                it=mys.find(d);
                if(it!=mys.end()) //如果本来就有,直接输出删除
                {
                   printf("%d
    ",d);
                   mys.erase(it);
                   continue;
                }
                mys.insert(d); //构造 先放一个d进去 再找到d所在的位置,然后--得到上一个位置,注意没有相同的d在容器里面
                it=it1=mys.find(d);
                printf("%d
    ",*(--it));
                mys.erase(it); //删除构造的和找到的
                mys.erase(it1);
    
             }
          }
          puts("");
       }
       return 0;
    }
    
    



  • 相关阅读:
    数据库 第一、二、三范式
    JVM垃圾回收(GC)整理总结学习
    ConcurrentHashMap
    Java GC、新生代、老年代
    Android -- 查看手机中所有进程
    ThreadLocal
    Android -- DrawerLayout
    WeakReference与SoftReference
    ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解
    微服务架构体系
  • 原文地址:https://www.cnblogs.com/riskyer/p/3246664.html
Copyright © 2020-2023  润新知