博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1572: [Usaco2009 Open]工作安排Job
阅读量:7301 次
发布时间:2019-06-30

本文共 1082 字,大约阅读时间需要 3 分钟。

1572: [Usaco2009 Open]工作安排Job

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 814  Solved: 365
[][]

Description

Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间。 他的工作日从0时刻开始,有1000000000个单位时间(!)。在任一时刻,他都可以选择编号1~N的N(1 <= N <= 100000)项工作中的任意一项工作来完成。 因为他在每个单位时间里只能做一个工作,而每项工作又有一个截止日期,所以他很难有时间完成所有N个工作,虽然还是有可能。 对于第i个工作,有一个截止时间D_i(1 <= D_i <= 1000000000),如果他可以完成这个工作,那么他可以获利P_i( 1<=P_i<=1000000000 ). 在给定的工作利润和截止时间下,FJ能够获得的利润最大为多少呢?答案可能会超过32位整型。

Input

第1行:一个整数N. 第2~N+1行:第i+1行有两个用空格分开的整数:D_i和P_i.

Output

输出一行,里面有一个整数,表示最大获利值。

Sample Input

3
2 10
1 5
1 7

Sample Output

17

HINT

 

第1个单位时间完成第3个工作(1,7),然后在第2个单位时间完成第1个工作(2,10)以达到最大利润

 

Source

 

题解:一个比较经典的问题,直接建立一个堆,然后倒着来,到每个时间节点就加上一波,然后将最大的一坨取出来即可

1 var 2    i,j,k,l,m,n,head:longint; 3    ans:int64; 4    b:array[0..200000,1..2] of longint; 5    a,lef,rig,fix:array[0..200000] of longint; 6 function min(x,y:longint):longint;inline; 7          begin 8               if x
x do inc(i);22 while b[j,2]
j;30 if i

 

转载于:https://www.cnblogs.com/HansBug/p/4263192.html

你可能感兴趣的文章
spring笔记--使用springAPI以及自定义类 实现AOP的一个例子
查看>>
Neditor 2.1.17 发布,修复涂鸦板报错
查看>>
利用pytorch实现Fooling Images(添加特定噪声到原始图像,使神经网络误识别)
查看>>
WordPress 捐赠插件漏洞,导致网站遭受零日攻击
查看>>
黑色魔法- Method Swizzling
查看>>
21世纪最伟大发现:量子即道,道行德昌。
查看>>
商城系统 DBShop V1.3 Release 20190416 发布
查看>>
MySQL的主从复制配置
查看>>
广州市印发《关于促进大数据发展的实施意见》
查看>>
AR的搅局者又多了一家,也许还会干掉 Magic Leap
查看>>
netty
查看>>
安卓应用安全指南 翻译完成
查看>>
区块链和物流——从这里开始
查看>>
Python学习之旅:访问MySQL数据库
查看>>
处理 NumPy 矩阵和 ufunc
查看>>
Chrome常用URL命令(伪URL)
查看>>
量子计算市场规模2027年将超100亿美元
查看>>
iscsi
查看>>
MySQL 插入中文不乱码的5种方法
查看>>
Node.js 学习笔记(一) - 下载安装
查看>>