江南大学第三届程序设计竞赛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个字符串,让你求出可以用来区别这些字符串的最少的前缀总共有多少个字 ...
随机推荐
- css媒体查询移动优先和pc优先
移动优先,默认你是用手机浏览该网页的,当你用pc浏览时,就会以min-width进行递增式媒体查询 <!DOCTYPE html> <html lang="en" ...
- Python 统计代码量
#统计代码量,显示离10W行代码还有多远 #递归搜索各个文件夹 #显示各个类型的源文件和源代码数量 #显示总行数与百分比 import os import easygui as g #查找文件 def ...
- Linux最大打开文件描述符数
1. 系统最大打开文件描述符数:/proc/sys/fs/file-max a. 查看 $ cat /proc/sys/fs/file-max 186405 2. 设置 a. 临时性 ...
- 手机CPU天梯图2018年5月最新版
话不多说,以下是2018年5月最新的手机CPU天梯图精简版,由于最近一两个月,芯片厂商发布的新Soc并不不多,因此这次天梯图更新,主要是来看看今年主流手机厂商都流行使用哪些处理器. 手机CPU天梯图2 ...
- 批处理--批量打开程序&批量关闭程序
批量打开程序 start D:\work\RunSvr01\IceFire88.01.exe start D:\work\RunSvr02\IceFire88.02.exe start D:\work ...
- 利用NtQuerySystemInformation函数遍历进程,遍历线程,获取线程挂起或运行状态
版权声明:专注于计算机网络安全学习 https://blog.csdn.net/u011672712/article/details/51586030 1 2 3 4 5 6 7 8 9 10 11 ...
- cxGrid数据录入
一.数据录入 1 在TcxGridDBTableView中,设定属性 NewItemRow.Visible = True 2 在cxgrid中输入数据怎样回车换行 在TcxGridDBTableV ...
- 【linux系列】cenos7安装jdk
一.下载jdk,我采用的jdk.tar.gz的安装包 二.创建jdk安装目录 三.安装包解压 四.jdk环境变量配置 五.使配置的环境变量生效 六.检查jdk是否安装成功
- H5 password自动记录取消
最近完成一个项目时需要取消谷歌浏览器的密码自动填充功能,为了用户方便,大多浏览器都有保存某个网站的密码并在后面再打开这个网站且需要输入密码的时候自动填充.这个功能是方便,但是我们有时候不需要使用这个功 ...
- Android 手机震动
1.添加震动权限 <uses-permission android:name="android.permission.VIBRATE"/> 2.获取震动服务 Vibra ...