poj1256(贪心+并查集)
题目链接:http://poj.org/problem?id=1456
题意:给n件商品的价格和卖出截至时间,每一个单位时间最多只能卖出一件商品,求能获得的最大利润。
思路:首先是贪心,为获得最大利润,优先考虑价格最高的,所以要按价格降序排列,另外每一件商品售出的时间应越后越好,比如a[i].p,a[i].d分别表示现在要售出的商品的价格和截止日期,则应该从a[i].d开始往前找不冲突的点,若找的点大于0,则卖出,若为0即表示因冲突无法卖出。并查集可以很好的实现这一要求,用root[i]表示第i件商品的最近不冲突点,每次售出后需要更新最近的不冲突点。
AC代码:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 6 const int maxn=10005; 7 struct node{ 8 int p,d; 9 }a[maxn]; 10 11 bool cmp(node x,node y){ 12 return x.p>y.p; 13 } 14 15 int n,root[maxn],res; 16 17 int getr(int k){ 18 if(root[k]==-1) return k; 19 else return root[k]=getr(root[k]); 20 } 21 22 int main(){ 23 while(~scanf("%d",&n)){ 24 res=0; 25 memset(root,-1,sizeof(root)); 26 for(int i=0;i<n;++i) 27 scanf("%d%d",&a[i].p,&a[i].d); 28 sort(a,a+n,cmp); 29 for(int i=0;i<n;++i){ 30 int r=getr(a[i].d); 31 if(r>0){ 32 res+=a[i].p; 33 root[r]=r-1; 34 } 35 } 36 printf("%d\n",res); 37 } 38 return 0; 39 }
转载于:https://www.cnblogs.com/FrankChen831X/p/10644300.html
poj1256(贪心+并查集)相关推荐
- 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 ...
- HDU多校2 - 6763 Total Eclipse(贪心+并查集)
题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在每个点都有一个点权,对于每次操作,可以选择一个点以及其周围能够连接的所有点,令其点权减一,当某个点的点权减到 0 时,就相 ...
- poj 1456 Supermarket 贪心+并查集(个人感觉有点难判断出来
poj 1456 这第一眼还觉得只要贪心就可以了,但是emmm看了大佬的题解居然真的要用到并查集= = 大佬清晰的思路 大佬舒服的代码 #pragma warning(disable:4996) #i ...
- Kruskal算法:贪心+并查集=最小生成树
http://www.51nod.com/ Kruskal算法的高效实现需要一种称作并查集的结构.我们在这里不介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论. Kruskal算 ...
- 最高的奖励 51Nod - 1163(贪心+并查集)
有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成该任务,就可以获得对应的奖励.完成每一个任务所需的时间都是1个单位时间.有时候完成所有任务是不可能的,因为时间上可能会有冲突 ...
- 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 ...
最新文章
- gitlab常用命令
- 面向对象的5条基本设计原则----拜读大作后
- 关于BGP的notification错误码的解释
- 算法--微软面试:指定数字在数组中出现的次数
- C语言数据类型转换(自动类型转换 强制类型转换)
- bootstrap基础学习【菜单、按钮、导航】(四)
- java 传递intent_intent传递参数
- JavaWeb:Cookie和Session
- Java集成openCV实现图片背景切换
- 高中知识三角函数怎么计算机,高中三角函数知识点归纳
- 二层交换机与三层交换机区别
- identifier “ “ is undefined 错误
- **xxchat系统之线程池实时监控方案(Jmx远程后台监控、暂停、启用)
- 各种Android实现边框
- Java:实现将方阵中的元素顺时针旋转90度算法(附完整源码)
- 2021-09-03 【N02】小程序开发学习笔记
- 一个淘宝店主真实的开店经历
- GBase 8s 因更换网络导致的908错误
- js 跨域访问问题解决方法
- H5页面实现摇一摇(微信+APP内嵌入使用)
热门文章
- 长二F发射神十二飞船圆满成功!三名航天员飞向空间站天和核心舱
- 行业观察 | 全球IoT云平台第一股诞生,IoT离爆发还有多远?
- 周志华:“数据、算法、算力”人工智能三要素,在未来要加上“知识”| CCF-GAIR 2020...
- 腾讯发布2020人工智能白皮书:泛在智能
- Facebook :AI 年度总结来啦
- 未来网络经济的99个趋势报告
- 13000行代码、19大技术,这位16岁高中生用C++从头到尾构建了一个机器学习库!...
- 现学现用!学完计组后,我马上在「我的世界」造了台显示器
- 吃透这套架构体系,三年成为架构师!
- 当产品上线前出了 Bug | 每日趣闻