zoukankan      html  css  js  c++  java
  • BZOJ 1572 贪心(priority_queue)

    思路:
    维护两个堆
    一个按时间 (从后到前)的
    另一个是按价值(从大到小)的
    从时间的堆向价值的堆倒
    每回(合法状态下)取当前的堆顶
    判一判

    //By SiriusRen
    #include <queue>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    long long ans;
    int n,t=1000000000;
    struct Node{int d,p;}node[100500];
    struct cmp{
        bool operator () (Node a,Node b){
            return a.p<b.p;
        }
    };
    struct cmp2{
        bool operator () (Node a,Node b){
            return a.d<b.d;
        }
    };
    priority_queue<Node,vector<Node>,cmp2>pq_time;
    priority_queue<Node,vector<Node>,cmp>pq_value;
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d%d",&node[i].d,&node[i].p);
            pq_time.push(node[i]);
        }
        pq_time.push((Node){0,0});
        while(!pq_time.empty()){
            Node tp=pq_time.top();pq_time.pop();
            if(pq_value.empty())t=tp.d;
            pq_value.push(tp);
            while(!pq_value.empty()){
                if(t>pq_time.top().d){
                    ans+=pq_value.top().p;
                    pq_value.pop();
                    t--;
                }
                else break;
            }
        }
        printf("%lld
    ",ans);
    }

    这里写图片描述

  • 相关阅读:
    kernel 于ioctl申请书
    顺时针打印矩阵
    HDU 1557 权利指数 国家压缩 暴力
    从混沌到有序--熵
    分层思想总结
    什么是分层架构模式
    分层设计
    分层设计思想
    软件的生长方式
    设计模式、SOLID原则:组件与联系
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532220.html
Copyright © 2011-2022 走看看