zoukankan      html  css  js  c++  java
  • [HNOI2003]操作系统 优先队列用法

    题:https://www.cometoj.com/problem/1046

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    struct node{
        int id,daoda,xiaohao,val;
        bool operator<(const node &b)const{
            if(val==b.val)
                return daoda>b.daoda;
            return val<b.val;
        }
    };
    struct NODE{
        int id,ti;
    };
    vector<NODE>ans;
    priority_queue<node>que;
    int main(){
        node p;
        int lasttime=0;
        while(~scanf("%d%d%d%d",&p.id,&p.daoda,&p.xiaohao,&p.val)){
            if(que.empty()){
                lasttime=p.daoda;
                que.push(p);
                continue;
            }
            //cout<<"!!!!"<<endl;
            int sumti=p.daoda-lasttime;
            int curti=lasttime;
            node u;
            NODE q;
            while(!que.empty()&&sumti>=que.top().xiaohao){
                u=que.top();
                que.pop();
                sumti-=u.xiaohao;
                curti+=u.xiaohao;
                q.id=u.id;
                q.ti=curti;
                ans.push_back(q);
            }
            if(!que.empty()&&sumti!=0){
                u=que.top();
                que.pop();
                u.xiaohao=max(0,u.xiaohao-sumti);
                curti+=u.xiaohao;
                if(u.xiaohao>0)
                    que.push(u);
                else{
                    q.id=u.id;
                    q.ti=curti;
                    ans.push_back(q);
                }
            }
            que.push(p);
            lasttime=p.daoda;
        } 
        while(!que.empty()){
            //cout<<"!!"<<endl;
            node u=que.top();
            que.pop();
            NODE q;
            q.id=u.id;
            q.ti=lasttime+u.xiaohao;
            ans.push_back(q);
            lasttime+=u.xiaohao;
        }
        for(int i=0;i<ans.size();i++){
            printf("%d %d
    ",ans[i].id,ans[i].ti);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    jquery内容过滤器
    jquery的each()
    jquery表单过滤器
    jquery评分星星
    UVa 1595 Symmetry (set && math)
    UVa 1592 Database (map)
    Codeforces 886E Maximum Element 组合数学 + dp
    Codeforces 725E Too Much Money (看题解)
    可持久化字典树
    Codeforces 660F Bear and Bowling 4 斜率优化 (看题解)
  • 原文地址:https://www.cnblogs.com/starve/p/11505813.html
Copyright © 2011-2022 走看看