并查集
Dilly__dally
这个作者很懒,什么都没留下…
展开
-
并查集入门
其实并查集顾名思义就是有“合并集合”和“查找集合中的元素”两种操作的关于数据结构的一种算法。概述性质并查集算法不支持分割一个集合。算法用集合中的某个元素来代表这个集合,该元素称为集合的代表元。一个集合内的所有元素组织成以代表元为根的树形结构。对于每一个元素 parent[x]指向x在树形结构上的父亲节点。如果x是根节点,则令parent[x] = x。对于查找操作,假设需要确定x所在的的集合,也就...转载 2018-04-22 09:31:06 · 136 阅读 · 0 评论 -
HDU 1213
套并查集模板就ojbk/*Sample Input25 31 22 34 55 12 5Sample Output24*/#include <iostream>using namespace std;int pre[1005];int Find(int x){ int p,tmp; p=x; while(x!=pre[x]) ...原创 2018-04-23 23:19:53 · 111 阅读 · 0 评论 -
HDU 1856
并查集水题,一开始超时了,把cin换成scanf就AC了#include <iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<map>using namespace std;int pre[10000005];int m[1000000...原创 2018-04-28 00:40:40 · 154 阅读 · 0 评论 -
HDU 1181
拓扑排序+并查集/*#include<bits/stdc++.h>using namespace std;*/#include <stdio.h>#include <string.h>#include<iostream>#include <vector>#include <queue>using namespac...原创 2018-04-30 00:25:37 · 282 阅读 · 0 评论 -
并查集模板
int pre[maxn];void init(){ for(int i=0;i<maxn;i++) { pre[i]=i; }}int Find(int x){ int p=x,tmp; while(x!=pre[x]) x=pre[x]; while(p!=x) { tmp...原创 2018-08-12 21:54:32 · 164 阅读 · 1 评论 -
【模板】带权并查集 HDU 3038
具体学习参考https://blog.csdn.net/sunmaoxiang/article/details/80959300#commentBox这篇博客也是我觉得比较好理解的方法——向量法,具体体现在代码。hdu 3038 区间和悖论问题假如说区间【fx,x】是之前建立的区间,他们之间和为sum[x],fx和x的联系可以用集合来存储,同理【fy,y】也是如此。当给出了一个新的...原创 2018-11-25 21:51:03 · 412 阅读 · 0 评论 -
HDU 1272 (并查集)
题意:上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判...原创 2018-11-27 13:41:47 · 204 阅读 · 1 评论 -
POJ 1456 (贪心+并查集)
题意:买卖N件东西,每件东西都有个截止时间,在截止时间之前买都可以,而每个单位时间只能买一件。问最大获利。思路:一开始我想错了,以为每个东西只能在特定的时间买,结果是截止时间前买都可以,所以先对所有数据按利润由大到小排序,然后用并查集来找截止时间的更新,也就是如果某个点的截止时间大于0,那么截止时间减一(其他相同的截止时间要提前一天进行),如果截止时间小于0,也就代表这个东西买不了了(之前相同...原创 2018-11-27 21:16:15 · 257 阅读 · 0 评论