AC日记——[JSOI2007]建筑抢修 bzoj 1029

Posted Only U - IU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AC日记——[JSOI2007]建筑抢修 bzoj 1029相关的知识,希望对你有一定的参考价值。

1029

 

思路:

  贪心,而且,stl水过;

  然而神特么输出que.size()就错!

 

代码:

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

#define maxn 150005
#define ll long long

struct BuildingType {
    ll lit,time;
};
struct BuildingType ai[maxn];

ll n,sum,ans;

inline void in(ll &now)
{
    char Cget=getchar();now=0;
    while(Cget>9||Cget<0) Cget=getchar();
    while(Cget>=0&&Cget<=9)
    {
        now=now*10+Cget-0;
        Cget=getchar();
    }
}

bool cmp(BuildingType aa,BuildingType bb)
{
    if(aa.lit==bb.lit) return aa.time<bb.time;
    else return aa.lit<bb.lit;
}

priority_queue<ll>que;

int main()
{
    in(n);
    for(ll i=1;i<=n;i++) in(ai[i].time),in(ai[i].lit);
    sort(ai+1,ai+n+1,cmp);
    for(ll i=1;i<=n;i++)
    {
        if(sum+ai[i].time<=ai[i].lit) que.push(ai[i].time),sum+=ai[i].time,ans++;
        else
        {
            if(que.empty()) continue;
            if(ai[i].time<que.top()) sum-=que.top(),que.pop(),que.push(ai[i].time),sum+=ai[i].time;
        }
    }
    printf("%lld\n",ans);
    return 0;
}

 

以上是关于AC日记——[JSOI2007]建筑抢修 bzoj 1029的主要内容,如果未能解决你的问题,请参考以下文章

[BZOJ1029][JSOI2007]建筑抢修

BZOJ-1029: [JSOI2007]建筑抢修(贪心+堆优化)

BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]

BZOJ1029: [JSOI2007]建筑抢修(贪心)

BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心

bzoj 1029 [JSOI2007]建筑抢修 - 贪心 + 大根堆