题目链接:51nod 1163 最高的奖励

看着这题我立马就想到昨天也做了一道贪心加优先队列的题了奥。

按任务最晚结束时间从小到大排序,依次选择任务,如果该任务最晚结束时间比当前时间点晚,则将该任务的奖励值压入队列,否则将队列中最小的任务的奖励值替换,优先队列按奖励值小的优先。

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long ll;
const int N = ;
struct task{
int e;
int w;
}a[N];
bool cmp(task x, task y){
return x.e < y.e;
}
priority_queue<int, vector<int>, greater<int> >q;
int main(){
int n, i, j;
ll ans = ;
scanf("%d", &n);
for(i = ; i < n; ++i)
scanf("%d%d", &a[i].e, &a[i].w);
sort(a, a+n, cmp);
for(i = ; i < n; ++i){
if(a[i].e > q.size()){
//如果该任务最晚结束时间比当前时间点晚
q.push(a[i].w);
ans += a[i].w;
}
else{
//可能替换为奖励更高的任务
ans += a[i].w;
q.push(a[i].w);
ans -= q.top();
q.pop();
}
}
printf("%lld\n", ans);
return ;
}

51nod 1163 最高的奖励(贪心+优先队列)的更多相关文章

  1. 51nod 1163 最高的奖励

    链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163 1163 最高的奖励  基准时间限制:1 秒 空间限制:13 ...

  2. NYOJ 1107 最高的奖励(贪心+优先队列)

    最高的奖励 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 请问:挖掘机技术哪家强?AC了告诉你! 给你N(N<=3*10^4)个任务,每个任务有一个截止完成时 ...

  3. 51nod 1428 活动安排问题 (贪心+优先队列)

    来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 首先按照开始时间从小到大排序. 其实只要维护一个结束时间的最 ...

  4. 51nod 1191:消灭兔子 贪心+优先队列

    1191 消灭兔子 题目来源: 2013腾讯马拉松赛第三场 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有N只兔子,每只有一个血量B[i],需要 ...

  5. 51nod 1163:最高的奖励 优先队列

    1163 最高的奖励 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成该 ...

  6. 51nod 1163 贪心

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163 1163 最高的奖励 基准时间限制:1 秒 空间限制:131072 ...

  7. 51 Nod 1163 最高的奖励

    1163 最高的奖励  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成 ...

  8. hihoCoder 1309:任务分配 贪心 优先队列

    #1309 : 任务分配 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定 N 项任务的起至时间( S1, E1 ), ( S2, E2 ), ..., ( SN,  ...

  9. UVA 11134 - Fabled Rooks(贪心+优先队列)

    We would like to place  n  rooks, 1 ≤  n  ≤ 5000, on a  n×n  board subject to the following restrict ...

随机推荐

  1. 使用Go开发web服务器

    原文链接 Go(Golang.org)是在标准库中提供HTTP协议支持的系统语言,通过他可以快速简单的开发一个web服务器.同时,Go语言为开发者提供了很多便利.这本篇博客中我们将列出使用Go开发HT ...

  2. VMware中给Linux虚拟机添加硬盘

    给vmware的Linux虚拟机添加硬盘 1.关闭虚拟机电源,在Virtual Machine Setting对话框里点击左下角的“Add”,选择“Hard Disk”,之后选择“Create a n ...

  3. C#窗体 自定义控件

    1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Dr ...

  4. Linux入门:运行级别解析

    Linux入门:运行级别解析   一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别:   www.2cto.com ...

  5. java mybatis 中sql 模糊查询

    示例: like concat('%',#{groupName},'%') //-------------- <select id="findList" resultType ...

  6. listener.ora增加监听端口

    一个简单的listener.ora # listener.ora Network Configuration File: d:\app\zyd\product\11.2.0\dbhome_1\netw ...

  7. js处理异常try{}catch(e){}

    MXS&Vincene  ─╄OvЁ  &0000021─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...

  8. datable-默认参数列表

    1 options { 'paging': false, 'scrollY': true, 'scrollX': true, 'scrollCollapse': false, 'ordering': ...

  9. [转]MySQL排序原理与案例分析

    这篇文章非常好,就把他转过来 前言      排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Grou ...

  10. sql按时间段汇总

    select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,CreateOn),120),dateadd(ss,-1,Create ...