• 洛谷 U136249 货比八家


    洛谷 U136249 货比八家

    洛谷传送门

    题目背景

    是的,SeawaySeawa**y觉得货比三家太简单了,他向麻麻提出要更难的挑战。于是他的麻麻带着他货比八家。qwq玩大了......

    题目描述

    SeawaySeawa**y现在拎着一个空的菜兜子。在整个买菜的过程中,会发生NN个事件。每个事件描述如下:

    1 x 麻麻向菜兜子里又添加了一个优秀度为x的菜。

    2 麻麻询问当前菜兜子里有多少菜。

    3 x 麻麻要SeawaySeawa**y把兜子里优秀度为x的菜全部扔掉。

    4 x k 麻麻要SeawaySeawa**y把兜子里优秀度为x的菜扔掉k个。

    5 x 麻麻询问当前菜兜子里优秀度为x的菜有几个。没有输出0。

    输入格式

    输入的第一行有一个整数NN,接下来的NN行,每行描述一个事件。

    输出格式

    按顺序回答麻麻的每个问题qwq。并且,当所有事件结束时,按从小到大顺序输出兜子里所有的菜的优秀度.


    命题背景:

    同上。

    题解:

    用multiset模拟AC。

    代码:

    #include<cstdio>
    #include<set>
    using namespace std;
    int n;
    multiset<int> s;
    multiset<int>::iterator it;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            int opt,x,k;
            scanf("%d",&opt);
            if(opt==1)
            {
                scanf("%d",&x);
                s.insert(x);
            }
            else if(opt==2)
                printf("%d
    ",s.size());
            else if(opt==3)
            {
                scanf("%d",&x);
                s.erase(x);
            }
            else if(opt==4)
            {
                scanf("%d%d",&x,&k);
                while(k--)
                {
                    it=s.find(x);
                    s.erase(it);
                }
            }
            else if(opt==5)
            {
                scanf("%d",&x);
                printf("%d
    ",s.count(x));
            }
        }
        for(it=s.begin();it!=s.end();it++)
            printf("%d ",*it);
        return 0;
    }
    
  • 相关阅读:
    itertools mode 之 combinations用法
    Java排序方法及效率测试
    python数据处理——csv文件读取
    python数据处理——bsonId与时间戳的相互转换
    python图文识别案例
    python数据处理——字符串转数值类型
    ajax实现异步请求
    使用redis的evalsha功能实现获取数据时备份数据
    U盘写入保护去除(非物理性的)
    Git——.gitignore文件语法规范
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13859053.html
Copyright © 2020-2023  润新知