[JSOI2007]建筑抢修

[JSOI2007]建筑抢修

https://ac.nowcoder.com/acm/problem/20154

get到了;可以后悔的贪心;有点像回溯;
类似安排会场问题,使得会场数最少;
因为每个维修时间有限,所以按照截止时间排序;(直观感受就是t2大的尽量排在后面完成)
之后就是在符合要求的条件下选择更小t1进行(这样能尽可能安排);

#include<bits/stdc++.h>
using namespace std;
#define ll long long
priority_queue<ll,vector<ll> > Q;
ll n;
struct nod{
    ll t1,t2;
}node[150010];
bool comp(nod a,nod b)
{
    if(a.t2<b.t2) return true;
    return false;
}
int main()
{
    ll ans=0,cnt=0;
    ll n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>node[i].t1>>node[i].t2;
    sort(node+1,node+1+n,comp);
    Q.push(node[1].t1);ans+=node[1].t1;
    for(int i=2;i<=n;i++)
    {
       ll m;
       m=Q.top();
       if(ans+node[i].t1<=node[i].t2) Q.push(node[i].t1),ans+=node[i].t1;
        else {
            if(m>node[i].t1) Q.pop(),Q.push(node[i].t1),ans=ans-m+node[i].t1;
        }
    }
    cout<<Q.size();
}
全部评论

相关推荐

今天要投简历吗?&nbsp;国庆期间真的不投比较好吗?&nbsp;emmmmmm
想要offer的每一...:可以去投,谁回你,你就拉黑他,国庆还上班,贼黑心
我的秋招日记
点赞 评论 收藏
分享
08-08 16:33
唐山学院 Java
职场水母:首先,简历太长,对于实习和应届找工作,hr一眼扫的是学历,技术看实习,你写的技术栈字太多了,尽量用一句话概括不用写那么详细,技术面的时候会问的,而且技术栈都会在实习或者项目里体现,你要做的是,把你的简历浓缩为一页,删除没用的东西,比如实践经历,自我评价,这些纯废话,没用,专业技能写的太离谱,你真的熟练掌握了吗,建议都写熟悉,找工作和写论文不一样,追求的是干练和实用,把实习经历和项目提前,把掌握的技术栈写到最后,然后去找实习,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务