zoukankan      html  css  js  c++  java
  • [TJOI2013]奖学金

    想一想我还是一个要写主席树的人

    然后我水了一道优队的题

    额……

    #include<bits/stdc++.h>
    #define re return
    #define ll long long 
    #define dec(i,l,r) for(int i=l;i>=r;--i)
    #define inc(i,l,r) for(int i=l;i<=r;++i)
    
    using namespace std;
    template<typename T>inline void rd(T&x)
    {
        char c;bool f=0;
        while((c=getchar())<'0'||c>'9')if(c=='-')f=1;
        x=c^48;
        while((c=getchar())>='0'&&c<='9')x=x*10+(c^48);
        if(f)x=-x;
    }
    const int maxn=2e5+5,maxm=1e6+5;
    int n,c,F,L[maxn],R[maxn];
    struct node
    {
        int grade,mon;
        bool operator<(node a)const 
        {
            re grade<a.grade;
        }
    }peo[maxn];    
    
    priority_queue<int>q,q1;
    int main()
    {
        rd(c);rd(n);rd(F);
        c/=2;
        inc(i,1,n)
        {
            rd(peo[i].grade);
            rd(peo[i].mon);
            L[i]=R[i]=-1;
        }
        
        sort(peo+1,peo+n+1);//按照成绩排序 
        
    
        int sum=0;
        inc(i,1,c)
        {
            sum+=peo[i].mon;
            q.push(peo[i].mon);
        }
        L[c+1]=sum;
        inc(i,c+1,n-c)
        {
            if(q.top()>peo[i].mon)
            {
                sum-=q.top();
                q.pop();
                q.push(peo[i].mon);
                sum+=peo[i].mon;
            } 
            L[i+1]=sum;
        }
        //从左向右扫一遍 
        
        sum=0;
        dec(i,n,n-c+1)
        {
            sum+=peo[i].mon;
            q1.push(peo[i].mon);
        }
        
        R[n-c]=sum;
        dec(i,n-c,c)
        {
            if(q1.top()>peo[i].mon)
            {
                sum-=q1.top();
                q1.pop();
                sum+=peo[i].mon;
                q1.push(peo[i].mon);
            }
            R[i-1]=sum;
        }
        //从右向左扫一遍 
        
        dec(i,n-c,c+1)
        if(R[i]+L[i]+peo[i].mon<=F)
        {
            printf("%d",peo[i].grade);
            re 0;
        }
        printf("-1");
        //计算 
        re 0;
    }
  • 相关阅读:
    03 Logistic Regression
    01 Linear Regression with One Variable
    00 Introduction
    virsh使用
    Linux配置输入设备(如停用笔记本键盘)
    linux安装ipconfig等网络工具
    软件工程团队第五次作业
    团队第四次作业
    软件工程团队第三次作业
    软件工程团队第二次作业
  • 原文地址:https://www.cnblogs.com/lsyyy/p/11389916.html
Copyright © 2011-2022 走看看