———并查集
MissZhou要努力
不晓日月,不辩兰艾,终日碌碌,安与燕雀相随乎
展开
-
hdu3018Ant Trip【欧拉道路数量 并查集】
DescriptionAnt Country consist of N towns.There are M roads connecting the towns.Ant Tony,together with his friends,wants to go through every part of the country.They intend to visit e原创 2016-03-16 19:13:05 · 1558 阅读 · 1 评论 -
leetcode 130. Surrounded Regions【并查集】
https://leetcode.com/problems/surrounded-regions/Given a 2D board containing'X'and'O'(the letter O), capture all regions surrounded by'X'.A region is captured by flipping all'O's into'X's i...原创 2019-07-21 19:06:24 · 244 阅读 · 0 评论 -
并查集详解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点转载 2015-08-09 14:20:48 · 343 阅读 · 0 评论 -
POJ 1611The Suspects 并查集
我会说之前的方法哪儿错了我还不知道嘛== 链接模板大法好==#include #includeusing namespace std;const int MAXN = 1000100;struct DS{ int f[MAXN]; void init(int n) { for(int i=0;i<n;i++) f[i原创 2015-08-10 09:51:53 · 394 阅读 · 0 评论 -
POJ 2492 A Bug's Life 并查集
#include #includeusing namespace std;int f[3000],relation[3000];void init(int n){ for(int i=0;i<=n;i++) { f[i]=i; relation[i]=1; }}int find(int x){ if(x==f[x])原创 2015-08-10 09:59:48 · 1213 阅读 · 0 评论 -
poj1182食物链 (并查集)
题目在这里哟和之前判断虫子是否有同性恋一样==(不是因为脑洞太大)都是分层的 取模的啊啊啊啊啊仔细观察一下两个代码,相似度好高好高哦哦#include#include#includeusing namespace std;int total;int n,m,a,b,c;int f[500005],rank[500005];void init(int n){ for(原创 2015-08-10 10:13:33 · 350 阅读 · 0 评论 -
HDU 1558 Segment set 并查集
这个题简直丧心病狂啊!!只要两个线段挨上就是一堆里的!!挨上,你懂么你懂么?相交算挨上,共线有重合算挨上,共线没重合不算!!最讨厌数学了!讨厌讨厌@。@还有 之前在纠结到底是以点作为单元还是线段作为单元呢?答案是线段套着点!问一堆里的有多少怎么办?发现就加上==#include#include#includeusing namespace std;int pre[1010]原创 2015-08-10 10:21:02 · 516 阅读 · 0 评论 -
HDU 1198 Farm Irrigation 并查集
自己思路和答案思路一样这种事情最开心啦~其实不看答案自己应该也能改对 又是把行列搞反了#include #include#includeusing namespace std;bool type[15][4]={{1,0,0,1},{1,1,0,0},{0,0,1,1},{0,1,1,0},{1,0,1,0},{0,1,0,1},{1,1,0,1},{1,0,1,1},{0,1,1,原创 2015-08-10 10:24:44 · 555 阅读 · 0 评论 -
hdu1272小希的迷宫【并查集基础】
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的原创 2015-10-09 08:46:03 · 668 阅读 · 0 评论 -
hdu3461Code Lock【并查集+快速幂】
Problem DescriptionA lock you use has a code system to be opened instead of a key. The lock contains a sequence of wheels. Each wheel has the 26 letters of the English alphabet 'a' through 'z', in o原创 2015-10-09 21:22:02 · 878 阅读 · 0 评论 -
poj3177Redundant Paths【构造双连通分量:并查集缩点 模板】
这个题就是问加几条边可以构成双连通分量,一开始图样图森破的以为只是求桥的个数就好,然而并非如此……构造双连通分量的加边数=(原图的叶节点数+1)/2 因为双连通分量需要成环嘛,原图已经是连着的了,所以只需要在另一侧再加一条边就成环啦~怎么判断哪里是叶结点呢?先用并查集缩点,把所有当前的双连通分量都缩到一起,然后就构成了只有桥的图,枚举每个桥,记录每个点的次数,每次加一。只有1的点就是原图原创 2015-11-20 10:12:27 · 1229 阅读 · 0 评论 -
hdu2586How far away ?【LCA tarjan求最短距离】
这个题比普通的LCA只多了一个求距离,然后就把我华丽丽的困住了==当然了,我用的LCA是离线版的并查集那种模板是邝斌的那种,LCA 不难理解,就是dfs树+并查集 ,但是距离加在哪里??机智如我想到了在递归的时候求~然而写进去还找错位置了,原因在于应该写成dis[v]=dis[u]+edge[i].len;而不是dis[v]+=edge[i].len;然后就是距离的求法dis[u] +原创 2015-11-25 21:39:27 · 1179 阅读 · 0 评论 -
hdu5606 bestcoder#68 div2tree【并查集】
tree Accepts: 152 Submissions: 697 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)问题描述有一个树(nn个点, n-1n−1条边的联通图),点标号从11~nn,树的边权是00或11.求离每个点最原创 2016-01-02 20:31:17 · 600 阅读 · 0 评论 -
hdu1512 Monkey King【左偏堆、并查集】
今天临“放学”看了好久左偏堆未果,直到下载了一个课件==我们定义节点i为外节点,当且仅当i的左子树或右子树为空。 一个节点的距离为他到他后代中,最近的外节点所经过的边数。特别的,如果一个节点本身为外节点,则这个节点的距离为0。一棵子树的距离为这棵子树根节点的距离。为了方便,空节点的距离为-1。 左偏树的左偏性质即左偏树的每个节点左子节点的距离都不小于右子节点的距离。 即:原创 2016-02-05 00:10:26 · 1016 阅读 · 0 评论 -
lintcode 178. 图是否是树【并查集】
昨晚迷迷糊糊写的忘记了树的条件是不成环,今天捡起来debug半天才发现最后比较的不应该是父节点相同 而应该是根结点相同其实最明智的做法是判断给出的边数,如果之前没成环,边数=n-1,那么就是树!class Solution {public: /** * @param n: An integer * @param edges: a list o...原创 2019-08-08 20:38:45 · 360 阅读 · 0 评论