最高的奖励 51Nod - 1163(贪心+并查集)
有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。
Input
第1行:一个数N,表示任务的数量(2 <= N <= 50000) 第2 - N + 1行,每行2个数,中间用空格分隔,表示任务的最晚结束时间Ei以及对应的奖励Wi。(1 <= Ei <= 10^9,1 <= Wi <= 10^9)
Output
输出能够获得的最高奖励。
Sample Input
7
4 20
2 60
4 70
3 40
1 30
4 50
6 10
Sample Output
230
思路:很不错的一道题目。
我们肯定希望取得最大的利润,那么利润最大的那个肯定要优先取,那么这个利润取得之后,它的前一秒的那个利润,我们就无法取得了,因为已经过了最大的期限。我们将利润从大到小排列,这一秒的利润取得了,然后我们就利用并查集将这一秒与上一秒联系在一起,直到上一秒为负数,就说明不能再取了。
代码如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=5e4+100;
struct node{int e;ll w;bool operator<(const node &a)const{if(a.w!=w) return w>a.w;else return a.e<e;}
}p[maxx];
int f[maxx];
int n;int getf(int x)
{if(x<0) return -1;if(f[x]==x) return f[x]=x-1;else return f[x]=getf(f[x]);
}
int main()
{while(cin>>n){for(int i=1;i<=n;i++) {f[i]=i;cin>>p[i].e>>p[i].w;}sort(p+1,p+1+n);ll ans=0;for(int i=1;i<=n;i++){int k=p[i].e;if(getf(k)>=0) ans+=p[i].w;}cout<<ans<<endl;}return 0;
}
努力加油a啊
最高的奖励 51Nod - 1163(贪心+并查集)相关推荐
- F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)
https://ac.nowcoder.com/acm/contest/9984/F 参考:F 魏迟燕的自走棋(贪心+并查集) 将每个人看成一个点,武器的能力值抽象成边,这样就转化成图论的模型了. 然 ...
- Supermarket | 贪心 + 并查集
Supermarket | 贪心 + 并查集 from poj 1456 from acwing 145 时间限制 :2s 内存限制:65M Description: A supermarket ha ...
- Kruskal算法:贪心+并查集=最小生成树
http://www.51nod.com/ Kruskal算法的高效实现需要一种称作并查集的结构.我们在这里不介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论. Kruskal算 ...
- poj1256(贪心+并查集)
题目链接:http://poj.org/problem?id=1456 题意:给n件商品的价格和卖出截至时间,每一个单位时间最多只能卖出一件商品,求能获得的最大利润. 思路:首先是贪心,为获得最大利润 ...
- HDU多校2 - 6763 Total Eclipse(贪心+并查集)
题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在每个点都有一个点权,对于每次操作,可以选择一个点以及其周围能够连接的所有点,令其点权减一,当某个点的点权减到 0 时,就相 ...
- poj 1456 Supermarket 贪心+并查集(个人感觉有点难判断出来
poj 1456 这第一眼还觉得只要贪心就可以了,但是emmm看了大佬的题解居然真的要用到并查集= = 大佬清晰的思路 大佬舒服的代码 #pragma warning(disable:4996) #i ...
- Codeforces 437D 贪心+并查集
这个题目让我想起了上次在湘潭赛的那道跪死了的题.也是最值问题,这个也是,有n个动物园 每个都有权值 然后被m条路径相连接,保证图是连通的,然后求所有的p[i][j]之和.i,j为任意两个zoo,pij ...
- 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)
ギリギリ eye Description A.D.1999,由坠落地球的"谜之战舰"带来的 Over Technology,揭示了人类历史和远古文明之间的丝丝联系, 促使人类终止彼 ...
- bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(切比雪夫距离+multiset贪心+并查集)
1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1092 S ...
最新文章
- 单目视觉里程计性能估计
- Action 中 Response already committed 解决办法
- adc0808温度换算公式_adc0808模数转换电路图及程序
- Linux help websites
- 相对网站根目录寻址 vs 相对当前目录寻址
- 【移动开发】Android应用程序中实用的代码框架(一)
- idea快速从dao层跳转到mapper.xml文件的插件
- python科学计算笔记(十四)pandas数据过滤、清理、转换
- Mysql总结_02_mysql数据库忘记密码时如何修改
- SQL Server中TEXT类型操作
- Bootstrap 2.2.2 发布,重要的 Bug 修复版本
- python安装jupyter出现问题_有关jupyterhub安装的问题
- php 获取header auth,php CURL Auth请求头和响应头获取
- c语言程序设计基础所有知识点,《C语言程序设计》基础知识点总结.doc
- 如何删除MySQL服务
- 我的世界java版如何加披风_我的世界正版披风怎么换
- 最短路径spfa算法
- 油猴脚本使用方法与管理插件方法+开发插件与安装插件的方法
- 编程实现恩格玛加密机(C++)
- 2022年全球光纤机械接头市场前景分析及研究报告
热门文章
- uniapp实现动态生成随机图形验证码
- Java连接Mysql数据库增删改查实现
- jquery html data属性,jQuery Mobile Data 属性
- cd : cannot create temp file for here-document: No space left on device
- php 置信区间 计算,科学网—置信区间和标准误差 - 邸月宝的博文
- h5 app title隐藏_荒岛求生H5:有难度的文字冒险生存游戏,你能生存多久?
- 一个按键控制数码管的开和关_基于FPGA的数字电路实验3:点亮数码管
- Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)
- Android开发之打开指定APP | 打开APP任意页面的方法
- Android中Log日志的管理之log工具类