码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-05-16 18:40:44      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:name   class   blog   while   bsp   names   time   span   sort   

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

标签:name   class   blog   while   bsp   names   time   span   sort   

原文地址:http://www.cnblogs.com/IUUUUUUUskyyy/p/6862652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!