题目链接: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(贪心+并查集)相关推荐

  1. F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)

    https://ac.nowcoder.com/acm/contest/9984/F 参考:F 魏迟燕的自走棋(贪心+并查集) 将每个人看成一个点,武器的能力值抽象成边,这样就转化成图论的模型了. 然 ...

  2. Supermarket | 贪心 + 并查集

    Supermarket | 贪心 + 并查集 from poj 1456 from acwing 145 时间限制 :2s 内存限制:65M Description: A supermarket ha ...

  3. HDU多校2 - 6763 Total Eclipse(贪心+并查集)

    题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在每个点都有一个点权,对于每次操作,可以选择一个点以及其周围能够连接的所有点,令其点权减一,当某个点的点权减到 0 时,就相 ...

  4. poj 1456 Supermarket 贪心+并查集(个人感觉有点难判断出来

    poj 1456 这第一眼还觉得只要贪心就可以了,但是emmm看了大佬的题解居然真的要用到并查集= = 大佬清晰的思路 大佬舒服的代码 #pragma warning(disable:4996) #i ...

  5. Kruskal算法:贪心+并查集=最小生成树

    http://www.51nod.com/ Kruskal算法的高效实现需要一种称作并查集的结构.我们在这里不介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论. Kruskal算 ...

  6. 最高的奖励 51Nod - 1163(贪心+并查集)

    有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成该任务,就可以获得对应的奖励.完成每一个任务所需的时间都是1个单位时间.有时候完成所有任务是不可能的,因为时间上可能会有冲突 ...

  7. Codeforces 437D 贪心+并查集

    这个题目让我想起了上次在湘潭赛的那道跪死了的题.也是最值问题,这个也是,有n个动物园 每个都有权值 然后被m条路径相连接,保证图是连通的,然后求所有的p[i][j]之和.i,j为任意两个zoo,pij ...

  8. 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)

    ギリギリ eye Description A.D.1999,由坠落地球的"谜之战舰"带来的 Over Technology,揭示了人类历史和远古文明之间的丝丝联系, 促使人类终止彼 ...

  9. bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(切比雪夫距离+multiset贪心+并查集)

    1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1092  S ...

最新文章

  1. gitlab常用命令
  2. 面向对象的5条基本设计原则----拜读大作后
  3. 关于BGP的notification错误码的解释
  4. 算法--微软面试:指定数字在数组中出现的次数
  5. C语言数据类型转换(自动类型转换 强制类型转换)
  6. bootstrap基础学习【菜单、按钮、导航】(四)
  7. java 传递intent_intent传递参数
  8. JavaWeb:Cookie和Session
  9. Java集成openCV实现图片背景切换
  10. 高中知识三角函数怎么计算机,高中三角函数知识点归纳
  11. 二层交换机与三层交换机区别
  12. identifier “ “ is undefined 错误
  13. **xxchat系统之线程池实时监控方案(Jmx远程后台监控、暂停、启用)
  14. 各种Android实现边框
  15. Java:实现将方阵中的元素顺时针旋转90度算法(附完整源码)
  16. 2021-09-03 【N02】小程序开发学习笔记
  17. 一个淘宝店主真实的开店经历
  18. GBase 8s 因更换网络导致的908错误
  19. js 跨域访问问题解决方法
  20. H5页面实现摇一摇(微信+APP内嵌入使用)

热门文章

  1. 长二F发射神十二飞船圆满成功!三名航天员飞向空间站天和核心舱
  2. 行业观察 | 全球IoT云平台第一股诞生,IoT离爆发还有多远?
  3. 周志华:“数据、算法、算力”人工智能三要素,在未来要加上“知识”| CCF-GAIR 2020...
  4. 腾讯发布2020人工智能白皮书:泛在智能
  5. Facebook :AI 年度总结来啦
  6. 未来网络经济的99个趋势报告
  7. 13000行代码、19大技术,这位16岁高中生用C++从头到尾构建了一个机器学习库!...
  8. 现学现用!学完计组后,我马上在「我的世界」造了台显示器
  9. 吃透这套架构体系,三年成为架构师!
  10. 当产品上线前出了 Bug | 每日趣闻