POJ1456:Supermarket(并查集版)
浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html
题目传送门:http://poj.org/problem?id=1456
堆作法:https://www.cnblogs.com/AKMer/p/10287566.html
贪心的想,我们尽量先把利润高的商品安排了。假如把利润高的物品安排在第\(x\)天,显然比安排任何利润比他低的商品在第\(x\)天更优。这就保证了我们先卖利润高的物品的贪心正确性。另外,如果能尽量把安排的日子靠后就靠后,这样拥有决策包含性的性质,这种贪心显然是最优的。
时间复杂度:\(O(nlogn)\)
空间复杂度:\(O(n)\)
代码如下:
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=1e4+5;
int n,ans;
int fa[maxn];
int read() {
	int x=0,f=1;char ch=getchar();
	for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
	for(;ch>='0'&&ch<='9';ch=getchar())x=x*10+ch-'0';
	return x*f;
}
struct Com {
	int v,t;
	bool operator<(const Com &a)const {
		return v>a.v;
	}
}p[maxn];
int find(int x) {
	if(fa[x]==x)return x;
	return fa[x]=find(fa[x]);
}
int main() {
	while(~scanf("%d",&n)) {
		for(int i=1;i<=n;i++)
			p[i].v=read(),p[i].t=read();
		sort(p+1,p+n+1),ans=0;
		for(int i=1;i<=10000;i++)fa[i]=i;
		for(int i=1;i<=n;i++) {
			int day=find(p[i].t);
			if(!day)continue;//说明没有空闲日子卖这个商品了
			ans+=p[i].v,fa[day]=day-1;
		}
		printf("%d\n",ans);
	}
	return 0;
}
												
											POJ1456:Supermarket(并查集版)的更多相关文章
- POJ1456 Supermarket 并查集
		
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1456 题意概括 一家超市,要卖出N种物品(每种物品各一个),每种物品都有一个卖出截止日期Di(在该 ...
 - poj1456(贪心+并查集)
		
题目链接: http://poj.org/problem?id=1456 题意: 有n个商品, 已知每个商品的价格和销售截止日期, 每销售一件商品需要花费一天, 即一天只能销售一件商品, 问最多能买多 ...
 - poj 1456 Supermarket(并查集维护区间)
		
 题意:有一些货物,每一个货物有价值和卖出的截至日期,每天能够卖一个货物,问能卖出的最大价值是多少. 思路:算法不难想到,按价值降序排列.对于每一件货物,从deadline那天開始考虑.假设哪天空 ...
 - poj 1456 Supermarket - 并查集 - 贪心
		
题目传送门 传送点I 传送点II 题目大意 有$n$个商品可以销售.每个商品销售会获得一个利润,但也有一个时间限制.每个商品需要1天的时间销售,一天也只能销售一件商品.问最大获利. 考虑将出售每个物品 ...
 - hdu-1856 More is better---带权并查集
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1856 题目大意: 一个并查集 计算每个集合的元素 找出元素最多的那个集合,输出元素的个数 解题思路: ...
 - hdu-1272 小希的迷宫---并查集或者DFS
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 题目大意: Problem Description 上次Gardon的迷宫城堡小希玩了很久(见 ...
 - ZOJ 3811 / 2014 牡丹江赛区网络赛 C. Untrusted Patrol  bfs/dfs/并查集
		
Untrusted Patrol Time Limit: 3 Seconds Memory Limit: 65536 KB ...
 - POJ-1456  Supermarket(贪心,并查集优化)
		
Supermarket Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10725 Accepted: 4688 Descript ...
 - POJ1456:Supermarket(并查集+贪心)
		
Supermarket Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17634 Accepted: 7920 题目链接 ...
 
随机推荐
- 【HackerRank】 Sherlock and The Beast
			
Sherlock and The Beast Sherlock Holmes is getting paranoid about Professor Moriarty, his archenemy. ...
 - 主攻ASP.NET.4.5.1 MVC5.0之重生:根据产品类别显示菜单分类和分页
			
路径访问的几种方式和分页效果 显示其它类别的效果和多数据分页效果 默认访问网站路径效果和多数据分页效果 URL路径访问可页面 http://localhost:5339/stationery http ...
 - 简要总结ajax工作原理及优缺点
			
虽然在实际的项目中使用多种ajax请求,但就其工作原理,优缺点尚未深入总结, 参考:http://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137 ...
 - CentOS 7卸载mariadb安装mysql
			
CentOS 7已经将默认集成mariadb而不是mysql,这对于多数还是依赖于mysql的应用来说,需要手动的进行更新. 可能会遇到这样错误,换成MySQL就好了. error 2002 (hy0 ...
 - ARC 与非ARC 之间的转换,以及如何使一个项目中,ARC与非ARC共存
			
1,非ARC 转 ARC的操作 XCode 的 Edit -- Refactor -- Convert to Object-C ARC (注意,一般在一个大项目中,很少直接使用此方法,其正确率有待考虑 ...
 - poj1753模拟
			
题目链接http://poj.org/problem?id=1573 题意:从第一行第k个出发按照已给的方向前进,问第几步走出去或第几步进入一个有多少步的循环. 就是按照题意模拟就好了. 代码写完了w ...
 - Email-Ext Plugin install ------ Jenkins Plugins
			
一.基本信息 1. Email-Ext Plugin功能简介 支持Jenkins邮件发送时,自定义邮件内容功能.详情可以查看jenkins的wiki : https://wiki.jenkins-ci ...
 - HDU3047 Zjnu Stadium
			
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
 - RGB(16进制)_转_TColor
			
ZC:内存中 COLORREF就是一个DWORD(从定义"COLORREF = DWORD;"就可以看出来),但是 具体的byte R/G/B 的位置是怎么方式的? ZC:Wind ...
 - neutron routers HA 实验
			
测试环境: 5个节点(( controller,2 network,2 compute nodes)) 采用VXLAN+Linux Bridge 1. 确定所有的neutron和nova服务都在运行 ...