和p1123智力大冲浪一样,可以用优先队列写...
 
每一秒可以做一个工作....因为n个任务只要在限制之前完成就行,所以时间不冲突的话肯定越早做完越好..所以最多的时间是n,当然限定的完成时间中最大的可能小于n,或者有的时间重叠什么的,所以大多数情况用不了n个时间....
 
所以我们就可以以时间为变量制造一个贪心,int now代表做一个工作前的时间,ans代表最大值,把工作按照时间顺序排序,然后不停地把p_i加到ans里,加进去一个now++一次,只要now不超过b_i就完全没有问题;
但是b_i<now+1了我们就需要去掉之前加进去的最小的那个工作然后now--(包括i),找最小这种事情就要优先队列来做...
 
那么now--后怎么就能确保now+1<=b_i?
这个东西和开始扫描前的排序有关系了,因为b_(i-1)肯定能放进去,那么当时now+1<=b_(i-1);而b_i>=b_(i-1),那么b_(i-1)放进去后now++一次就说明这个时候now<=b_i,然后就证明了这个问题;
那么b_(i-1)为什么能放进去?只需要往前推就好了啊...第一个任务肯定是能放进去的...
 
嗯没有下面了

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<queue>
using namespace std;
long long n;
struct wtff{
long long d,p;
}wtf[];
priority_queue< long long >q;
bool mycmp(wtff a,wtff b){
return (a.d<b.d||
(a.d==b.d&&a.p<b.p));
}
int main(){
long long ans=;
cin>>n;
for(int i=;i<=n;i++){
scanf("%lld%lld",&wtf[i].d,&wtf[i].p);
}
sort(wtf+,wtf++n,mycmp);
int now=;
for(int i=;i<=n;i++){
ans+=wtf[i].p;
now++;
q.push(-wtf[i].p);
if(now>wtf[i].d){
ans+=q.top();
q.pop();
now--;
}
}
cout<<ans<<endl;
return ;
}
 

JZYZOJ1622 [usaco2009]工作安排 贪心的更多相关文章

  1. BZOJ 1572: [Usaco2009 Open]工作安排Job( 贪心 )

    贪心... 按截止时间排序 , 然后从小到大考虑 . 假设当前考虑第 i 个任务 , 若目前已选工作数 < D_i , 那就选 i ; 否则 若已选工作中利润最小的比 P_i 小 , 那就去除它 ...

  2. 【BZOJ 1572】 1572: [Usaco2009 Open]工作安排Job(贪心+优先队列)

    1572: [Usaco2009 Open]工作安排Job Description Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单 ...

  3. [bzoj1572][Usaco2009 Open]工作安排Job_贪心_堆

    工作安排 Job bzoj-1572 Usaco-2009 Open 题目大意:题目链接. 注释:略. 想法: 我们将任务按照截止时间排序,枚举任务的同时顺便记录出已经做了多少任务(当前时间). 对于 ...

  4. BZOJ1572: [Usaco2009 Open]工作安排Job

    1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 775  Solved: 337[Submit ...

  5. 1572: [Usaco2009 Open]工作安排Job

    1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 814  Solved: 365[Submit ...

  6. 【BZOJ】【2245】【SDOI2011】工作安排

    网络流/费用流 裸题吧……直接建模就好了……所谓的“分段函数”就是吓唬你的,其实就是对于每个人分开建几条流量不同.费用不同的弧而已. 对每种产品,连S->i ,(c[i],0):对每个工作人员 ...

  7. lemon OA 下阶段工作安排

    lemon OA 下阶段工作安排 经验总结 lemon OA系统作为一个中型的java web系统,在架构上还是有着很好地可学习的地方.但是由于经验不足,过程比较迂回.如果真的有经验的话,应该可以做到 ...

  8. bzoj 2245 [SDOI2011]工作安排(最小费用最大流)

    2245: [SDOI2011]工作安排 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1197  Solved: 580[Submit][Statu ...

  9. BZOJ 2245: [SDOI2011]工作安排( 费用流 )

    费用流模板题..限制一下不同愤怒值的工作数就可以了. ------------------------------------------------------------------------- ...

随机推荐

  1. 原生js写Ajax

    //原生js写ajax就像打电话 //打电话分下面4步//1.拿出手机//2.拨号//3.说话//4.挺对方说话 //ajax也分下面4步//1.创建ajax对象//2.连接到服务器//3.发送请求( ...

  2. java对象与json互转

    package com.liveyc; import java.io.StringWriter; import org.junit.Test; import com.fasterxml.jackson ...

  3. Xcode 获取本地IP

    // // // #define MAXADDRS 32 extern char *ip_names[MAXADDRS]; void InitAddresses(); void GetIPAddres ...

  4. shell中$*与$@的区别

    $*所有的位置参数,被作为一个单词 注意:"$*"必须被""引用 $@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被 ...

  5. 工具===激活xmind 8

      [下载jar包]: https://stormxing.oss-cn-beijing.aliyuncs.com/files/XMindCrack.jar   方法: 打开xmind 8 安装目录的 ...

  6. Java Eclipse 配置

    1.清除多余记录 最近用eclipse打包jar的时候,需要指定一个main函数.需要先运行一下main函数,eclipse的Runnable JAR File Specification 下的Lau ...

  7. 防范XSS跨站2

    原文:http://blog.csdn.net/joeyon1985/article/details/43527987 在前面的一篇文章中,讲到了java web应用程序防止 csrf 攻击的方法,参 ...

  8. Debian系网络配置 /etc/network/interfaces

    说Debian系的网卡配置跟Redhat系很不一样,Redhat是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面,要修改?你一个一个文件来过吧.Debian系 ...

  9. before_request after_request

    Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__na ...

  10. cin关闭同步[转]

    很多人会说cin的速度比scanf慢很多, 其实不然. cin慢的原因主要在于默认cin与stdin总是保持同步, 这一步是消耗时间大户. 只需要加上ios::sync_with_stdio(fals ...