zoukankan      html  css  js  c++  java
  • Luogu P2073 送花 set

    这题。。。一眼set。。。但是打了一会儿。。


    记录一下每个价格对应的美丽度,顺便充当vis数组,如果美丽度不为0,说明set里已经有了。。。

    删除好说,删*s.begin()和*--s.end()就好,但是记得删之前判一下size,否则--s.end()会可能RE

    #include<cstdio>
    #include<iostream>
    #include<set>
    #define R register int
    using namespace std;
    inline int g() {
        R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix;
        do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix;
    }
    int rw[1000010],n;
    set<int>s;
    long long ans,ans2;
    signed main() {
        while(n=g(),n!=-1) {
            if(n==1) {
                R w=g(),c=g();
                if(!rw[c]) s.insert(c),rw[c]=w;
            } else if(n==3) {if(s.size()&&rw[*s.begin()]) rw[*s.begin()]=0,s.erase(s.begin());} 
            else if(n==2) if(s.size()&&rw[*(--s.end())]) {R pos=*(--s.end()); rw[pos]=0,s.erase(--s.end());}
        } for(set<int>::iterator it=s.begin();it!=s.end();++it) ans+=(long long)rw[*it],ans2+=*it;
        printf("%lld %lld
    ",ans,ans2);
    }
  • 相关阅读:
    vue 使用echarts 柱状图使用图片显示
    Devexpress分组小计
    小写转大写
    预览打印
    LINQ
    结束任务管理器进程
    游标
    查看死锁
    sql 分页
    压缩解压缩传输的数据
  • 原文地址:https://www.cnblogs.com/Jackpei/p/10761401.html
Copyright © 2011-2022 走看看