并查集
算球?
在校学生
展开
-
poj 1611 The Suspects(并查集)
include int f[30010]; int n,m;int getf(int x) { if(x == f[x]) return x; return (f[x] = getf(f[x])); }void merge(int a, int b) { a = getf(a); b = getf(b); if(a != b原创 2017-02-07 16:47:17 · 271 阅读 · 0 评论 -
hdu 1272 小希的迷宫(并查集)
1.是一个最小生成树2.不能有环#include #include using namespace std;int f[100001];int book[100001];bool circle;int edge;int getf(int x){ return x == f[x] ? x:(f[x] = getf(f[x]));}void merge(int x原创 2016-06-15 20:21:25 · 301 阅读 · 0 评论 -
hdu 1232 畅通工程(并查集)
#include int f[10001];int n,m;//初始化标记void init(){ for(int i = 1; i <= n; ++i) f[i] = i;}//寻找连接的城市的关系int getf(int num){ if(num == f[num]) return num; else {原创 2016-06-02 22:51:15 · 342 阅读 · 0 评论 -
hdu 1213 How Many Tables(并查集)
这个题目很简单#include int f[10001];int n,m;//初始化标记void init(){ for(int i = 1; i <= n; ++i) f[i] = i;}//寻找认识的人之间的练习int getf(int num){ if(num == f[num]) return num; e原创 2016-06-02 22:27:34 · 242 阅读 · 0 评论 -
51nod 1253 Kundu and Tree
容斥原理+并查集。。第一次见这样的题,涨姿势了,不看题解想不出。 看了题解后才发现很简单。 题解: http://blog.csdn.net/crybymyself/article/details/68062911 http://www.cnblogs.com/Stomach-ache/p/3931848.html一个讲的细,用dfs求的连通分量。 一个讲的粗略,用的并查集。。 思路:首原创 2017-06-05 22:20:17 · 329 阅读 · 0 评论 -
51nod 1535 深海探险
判断是不是环套树,点数等于边数并且图连通就是环套树了。#include <bits/stdc++.h>using namespace std;const int MAXN = 110;int f[MAXN];int getf(int x){ if(f[x] == -1) return x; return f[x]=getf(f[x]);}void mge(in原创 2017-10-02 16:02:42 · 226 阅读 · 0 评论 -
Codeforces Round #363 (Div. 2) D Fix a Tree(并查集)
一般做cf,我很少会看d题,前边的都写不完,哪有心思看这个。现在刷刷以前cf的后边的题目。 我思路:先用并查集查询出独立的连通块。然后每个连通块,求点双,这样就能找到改变次数。然后发现题目还要求输出所有节点父节点,我想把上边搞完后再重新建树就行了。后来发现,我的能力实现不了。 参考题解:http://blog.csdn.net/u010734277/article/details/5198043原创 2017-10-01 14:29:44 · 245 阅读 · 0 评论