并查集
文章平均质量分 72
弱菜zc
打完这场就回老家结婚!
展开
-
hdu 1325/poj 1308 Is It A Tree? 并查集
题目链接题意:给出n条有向边,判断是不是一棵树。这题和hdu1272题目类似,只是把无向边改成了有向边。多加一个判断条件,保证子节点是根节点。#include #include#include#include#define N 11000using namespace std;int pre[N],vis[N],flag,maxn;void init(){原创 2016-04-13 08:43:59 · 1860 阅读 · 6 评论 -
hdu 3018 Ant Trip 一笔画问题
题目链接题意:给出n个村庄,m条路。Tony和朋友们想遍历所有的路,并且每条路只经过一次。问他们最少要分成几组。一笔画问题。若一个连通子图的全都是偶节点,则分组+1。若有t个奇节点,则分组+t/2。欧拉路的判断方法:奇节点的度为2或者0。注意若一个点没有路与它相连,则不考虑它。#include #include#include#include#define N 1100原创 2016-04-21 20:31:47 · 623 阅读 · 0 评论 -
hdu 1878 欧拉回路
题目链接题意:欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?欧拉回路每个顶点的度为偶数,统计度的奇偶即可。用并查集判断连通性。#include #include#include#include#define N 1100using namespace std;int num[N],pre[N];int原创 2016-04-20 20:58:08 · 577 阅读 · 0 评论 -
hdu 1598 find the most comfortable road 枚举+并查集
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1598题意:给出n个城市,m条路径,若路径中的最大速度和最小速度差越小则越舒适,求给定节点的最小差。先对路径按速度排序,枚举路径作为最小速度,依次增加路径,直到两个城市连通,即可得到当前最小速度下最小差。取这些最小差的最小值即可。#include #include#include原创 2016-05-13 21:48:42 · 486 阅读 · 0 评论 -
并查集&MST题集
【HDU】1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better 基础并查集★1102 Constructing Roads 基础最小生成树★1232 畅通工程 基础并查集★2120 Ice_cream'转载 2016-04-06 15:25:36 · 767 阅读 · 0 评论 -
hdu 2120 Ice_cream's world I 并查集
题目链接题意:给出n个哨塔,m面墙。被墙围起来的土地可以分给一个人。问一共可以分给多少人土地。这题的求的是图中环的个数。用并查集来做,读入两个点,当这两个点的父节点相同说明这两个点已经连通,这时候再加上这条边就形成了一个环。以此来统计环的个数。#include #include#include#includeusing namespace std;int ans,pre[原创 2016-04-15 20:59:01 · 835 阅读 · 0 评论 -
hdu 1232 畅通工程 并查集模板题
题目链接题意:n个城镇,有m条路,计算还需要多少条路能让所有的城镇连通。连通的城镇都在同一个集合中,两个集合要连通只需要加一条路就行。所以只需要计算连通分支数-1即可。#include #include#include#includeusing namespace std;int pre[1100];int findset(int v){ int t1,t2原创 2016-04-15 20:29:03 · 1070 阅读 · 0 评论 -
hdu 1213 How Many Tables 并查集模板题+路径压缩
题目链接题意:n个人,m对人之间是朋友,求有几个朋友圈。经典并查集题,给出了路径压缩的模板。#include #include#include#includeusing namespace std;int pre[1100];int findset(int v){ int t1,t2=v; while(v!=pre[v]) v=pre[v];原创 2016-04-11 17:52:16 · 881 阅读 · 0 评论 -
并查集算法和路径压缩
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它转载 2016-04-11 17:34:07 · 2197 阅读 · 1 评论 -
hdu 1811 Rank of Tetris 拓扑排序+并查集
题目链接题意:给出n个点,m个关系。判断是否能确定独一无二的先后顺序。先用并查集把相等的点合并成一个点。然后用拓扑排序判断是否有环,是否同时出现多个入度为0的点。#include #include#include#include#define N 11000#define M 22000using namespace std;struct node{ int原创 2016-04-27 08:25:12 · 483 阅读 · 0 评论 -
hdu 1856 More is better 并查集模板题
题目链接题意:给出n对朋友,求出最大的朋友圈。注意n=0时,只有一个人,所以输出1。#include #include#include#include#define N 10000001using namespace std;int pre[N],maxn,ans,sum[N];void init(){ ans=maxn=0; for(int i=0原创 2016-04-13 16:05:29 · 690 阅读 · 0 评论 -
hdu 1272 小希的迷宫 并查集
题意:判断一张图是否联通且无环。若一条边的两个节点为同一个父节点,则成环。若所有的节点的父节点相同则联通。注意输入0 0时为Yes。#include #include#include#include#define N 110000using namespace std;int flag,pre[N],vis[N],maxn;void init(){ for(i原创 2016-04-12 21:51:27 · 1904 阅读 · 1 评论 -
poj 1182 食物链 带权并查集
题目链接:http://poj.org/problem;jsessionid=6DC324CEA3473E8FC76C6BD83E2626DE?id=1182题意:题目告诉有3种动物,互相吃与被吃,现在告诉你m句话,其中有真有假,叫你判断假的个数(如果前面没有与当前话冲突的,即认为其为真话)。经典的并查集题目,可以设置权值r[i](i与父亲节点的关系):0——同类;1——食原创 2016-05-17 20:27:29 · 537 阅读 · 0 评论