江南大学第三届程序设计竞赛K题 - Cun Tou Gaming - [贪心+堆]
描述
CTG(Cun Tou Gaming) 是我校的一支 LOL 战队,他们参加比赛总是可以拿到冠军,因为每次都只有他们一支队伍参赛,所以只需要去签个到就可以直接夺冠并领取奖金。现在有 n 场比赛可以让他们选择,每场比赛都有各自的截止日期 d 和奖金 r ,而 CTG 战队必须在截止日期之前(包括截止日期当天)去参赛才可以拿到奖金。由于签到是一项很辛苦的工作所以战队一天只能参加一场比赛。现在要你设计出一种参赛方案,使他们可以拿到最多的奖金。
Input
有多组样例,第一行一个整数 T(T≤10) ,表示 T 组样例,对于每组样例:
第一行给出一个整数 n 表示有 n(n≤105) 场比赛可以参加。
接下来的 n 行,每行由 d 和 r 组成 (d,r≤109) ,分别表示截止日期和奖金数。
Output
输出 T 行。
每行即为该组测试中可以拿到的最多奖金数,保证答案在long long int的范围内。
Examples
Input
2
3
2 10
2 15
3 20
3
2 10
1 50
1 40
Output
45
60
这题就是我在http://www.cnblogs.com/dilthey/p/7859007.html里说的那道题目。
AC代码:
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
struct Game{
int d,r;
bool operator < (const Game& oth)const{return oth.r<r;}
}game[+];
bool cmp(Game a,Game b){return a.d<b.d;}
int n;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%d%d",&game[i].d,&game[i].r);
sort(game,game+n,cmp);
//for(int i=0;i<n;i++) printf("%d %d\n",game[i].d,game[i].r); priority_queue<Game> heap;
for(int i=;i<n;i++)
{
if(game[i].d>heap.size()) heap.push(game[i]);
else
{
Game t=heap.top();
if(game[i].r>t.r)
{
heap.pop();
heap.push(game[i]);
}
}
} long long ans=;
while(!heap.empty())
{
//printf("%d %d\n",heap.top().d,heap.top().r);
ans+=heap.top().r;
heap.pop();
}
printf("%lld\n",ans);
}
}
附测试数据:
------Input------
8
3
2 10
2 15
3 20
3
2 10
1 50
1 40
7
4 20
2 60
4 70
3 40
1 30
4 50
6 10
2000
690 129437
444 236120
510 13552
487 376961
8 135813
576 117668
809 256728
790 282625
950 397291
831 46129
621 364410
47 314380
589 343421
907 243865
393 347616
531 365208
725 111070
20 66761
265 353077
767 289700
198 157768
629 101735
634 170788
392 93341
791 289334
259 24363
514 183483
249 342201
379 342490
450 25143
634 106233
11 382625
735 289909
954 206382
691 298898
545 332033
222 100879
506 81493
23 347615
310 35 ------Answer-----
45
60
230
299340856
4706131694
298231962423
3417359679513
4671715304676
江南大学第三届程序设计竞赛K题 - Cun Tou Gaming - [贪心+堆]的更多相关文章
- ACM学习历程—SNNUOJ 1116 A Simple Problem(递推 && 逆元 && 组合数学 && 快速幂)(2015陕西省大学生程序设计竞赛K题)
Description Assuming a finite – radius “ball” which is on an N dimension is cut with a “knife” of N- ...
- 江西财经大学第一届程序设计竞赛 G题 小Q的口袋校园
链接:https://www.nowcoder.com/acm/contest/115/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- angry_birds_again_and_again(2014年山东省第五届ACM大学生程序设计竞赛A题)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2877 题目描述 The problems ca ...
- ZZUOJ-1195-OS Job Scheduling(郑州大学第七届ACM大学生程序设计竞赛E题)
1195: OS Job Scheduling Time Limit: 2 Sec Memory Limit: 128 MB Submit: 106 Solved: 35 [id=1195&quo ...
- 湖南程序设计竞赛赛题总结 XTU 1237 Magic Triangle(计算几何)
这个月月初我们一行三人去湖南参加了ccpc湖南程序设计比赛,虽然路途遥远,六月的湘潭天气燥热,不过在一起的努力之下,拿到了一块铜牌,也算没空手而归啦.不过通过比赛,还是发现我们的差距,希望这几个月自己 ...
- CSU 1328 近似回文词(2013湖南省程序设计竞赛A题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328 解题报告:中文题题意就不说了.还好数据不大,只有1000,枚举回文串的中心位置,然 ...
- 江西财经大学第一届程序设计竞赛 H题 求大数的阶乘
链接:https://www.nowcoder.com/acm/contest/115/H 来源:牛客网 晚上,小P喜欢在寝室里一个个静静的学习或者思考,享受自由自在的单身生活. 他总是能从所学的知识 ...
- ZOJ 4100 浙江省第16届大学生程序设计竞赛 A题 Vertices in the Pocket 线段树+并查集
正赛的时候完全没看这个题,事后winterzz告诉我他想出来的解法. 首先题意是给出n个点,m次操作. 操作有一种是连接两个点,另一种是求此时再为这个图连k条边,最少和最多能有几个联通块. 最少的求法 ...
- 2012年湖南省程序设计竞赛E题 最短的名字
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1115 解题报告:输入n个字符串,让你求出可以用来区别这些字符串的最少的前缀总共有多少个字 ...
随机推荐
- NHibernate 集合映射深入 (第五篇) <set>,<list>,<map>,<bag>
一.集合外键 在NHibernate中,典型的用于映射集合类的元素有<set>,<list>,<map>,<bag>,<array>,< ...
- ios开发之--NSString的操作
NSString的操作,下面记录下他的常用方法: NSString *str = @"1111111111aaaaaaaaa2222222222"; 1.查找 //查找 NSRan ...
- 利用Python爆破数据库备份文件
某次测试过程中,发现PHP备份功能代码如下: // 根据时间生成备份文件名 $file_name = 'D' . date('Ymd') . 'T' . date('His'); $sql_file_ ...
- Linux下安装配置MySQL
一.删除原来的MySQL 在安装前要先确定系统是否已经安装了其他版本的MySQL,如已安装其他版本的MySQL,需先删除后再安装新版本. 1. 执行yum命令,删除MySQL的lib库,服务文件 yu ...
- SaltStack salt 命令
salt 是服务端远程批量操作多台客户端需要使用到的命令,常见用法如下: salt '*' # 指定对所有客户端主机进行操作 salt 'minion01' # 指定对单台客户端主机进行操作 salt ...
- Elasticseach的评分机制
lucene 的评分机制 elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的.评分就是我们搜索的短语和索引中每篇文档的相关度打分. 如果没有干预评分算法的时候,每次 ...
- sutdio中替换全局方法
Ctril Shift R Text to find :是要搜索的内容或者要被替换的内容 Replace with :是要替换的内容 Preview:是可以看到预览 在Scope的选项卡里 Whole ...
- Java动态代理的实现机制
一.概述 代理是一种设计模式,其目的是为其他对象提供一个代理以控制对某个对象的访问,代理类负责为委托类预处理消息,过滤消息并转发消息以及进行消息被委托类执行后的后续处理.为了保持行为的一致性,代理类和 ...
- RabbitMQ笔记四:Binding,Queue,Message概念
Binding详解 黄线部分就是binding Exchange与Exchange,Queue之间的虚拟连接,Binding中可以包含Routing key或者参数 创建binding 注意: ...
- IOS设计模式第九篇之备忘录模式
版权声明:原创作品,谢绝转载!否则将追究法律责任. 备忘录模式捕获和具体化对象的内部状态.换句话说,它可以节省你的东西后来,这种外部状态可以恢复在不违反封装; 也就是说,私人数据是私有的. 怎么用备忘 ...