![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 83
九野的博客
这个作者很懒,什么都没留下…
展开
-
HDU 4496 Tutor 2013 ACM-ICPC吉林通化全国邀请赛E题
题意:给定n个点(0 - n-1) m条边在n个点组成的完全图中去边,问去掉一条边后的连通分量是多少 数据保证m>= (n-1) * n/2, 也就是最后去掉了所有的边 这里可以把题目看作是反向建图,从最后给定的边开始把n个独立的点相连,然后并查集 #include#include#include#include#include#define N原创 2013-09-01 11:02:36 · 2417 阅读 · 0 评论 -
UVA 11600 Masud Rana 并查集+状压概率dp
题目链接:点击打开链接题意:给定一个无向图,给定的边是已经存在的边,每天会任选两个点新建一条边(建过的边还会重建)问:使得图连通的天数的期望。思路:状压喽,看别人都是这么写的,n=30,m=0 我也不知道怎么办了。。当前连通块点数为X 加入一个Y个点的连通块需要的天数为 Y/(n-X);Masud Rana, A Daring Spy Of Bangladesh Cou原创 2015-01-30 10:27:54 · 1634 阅读 · 0 评论 -
UVALive 6091 Trees 并查集(水
题目链接:点击打开链接题意:给定n个点原创 2014-11-02 12:50:41 · 1194 阅读 · 0 评论 -
HDU 4424 Conquer a New Region 并查集
题意:#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include template inline bool rd(T &ret) { char c; int sgn; if (c = getchar(), c == EOF) return 0原创 2014-11-09 14:10:44 · 1256 阅读 · 0 评论 -
HDU 1863 并查集+最小生成树
//裸裸的并查集+最小生成树,然后贴码#include #include using namespace std;#define N 105struct node{ int from,to,w;}edge[N];int f[N],n,m;int Find(int u){ if(u==f[u])return u; return f[u]=Find(f[u]);}bool c原创 2013-07-24 21:46:18 · 1429 阅读 · 1 评论 -
UVALive 4730 Kingdom 线段树+并查集
题目链接:点击打开链接题意见白书P248思路:先把读入的y值都扩大2倍变成整数然后离散化一下用线段树来维护y轴 区间上每个点的 城市数量和联通块数量,然后用并查集维护每个联通块及联通块的最大最小y值,还要加并查集的秩来记录每个联通块的点数然后就是模拟搞。。T^T绝杀失败题。。似乎数组开小了一点就过了,==#include#include#includ原创 2014-08-16 23:59:23 · 1611 阅读 · 0 评论 -
ZOJ 3811 Untrusted Patrol 并查集
题目链接:点击打开链接题意:给定n个点m条边的无向图,k个触发器。下面k个数表示触发器安装在哪几个点。下面m行给出边最后有l个信号,给出信号发出的触发器的顺序。每个触发器只会发出一次信号,且一个点只有一个触发器。有一个人在遍历图。每经过一个点,那个点的触发器就会发出信号,问是否存在一种走法使得这个人遍历了所有点且触发器发出的信号顺序和给出的一样。思路:先原创 2014-09-07 19:14:44 · 2638 阅读 · 1 评论 -
Codeforces 455C Civilization 树的直径+并查集
题目链接:点击打开链接题意:给定n个点 m条无向边的图 k个询问无重边、自环、环定义 2个点属于一个国家:当这两个点连通时操作1 x:输出x所在的国家内的最长路长度操作2 x y:若x y属于一个国家 则忽略若不属于一个国家,则在2个集合间连一条边,使得连完后最长路最短连2个集合的最长路一定是 找2个集合最长路的中点进行连接则连接后的最长路长度为 p原创 2014-08-09 12:31:12 · 1910 阅读 · 0 评论 -
UVA 11354 Bond 瓶颈路 最小生成树+LCA类似
题目链接:点击打开链接题意:给定n个点m条边的无向图下面m行是(u,v) 和边权下面q个询问(u, v)在这两个点间找一条路径使得这个路径上最大的边权最小。数据保证询问的2个点之间一定存在路径思路:求瓶颈路,最小生成树跑一下。然后求lca的代码里加入边权。因为要使得最大的边权最小,所以用最小生成树的krusal算法,正确性证明:我们现在有原创 2014-09-05 13:07:59 · 1635 阅读 · 0 评论 -
HDU 3172 Virtual Friends 带权并查集 -秩
ll T;while(~scanf("%d",&T)){while(T--) { = = ...思路:用秩合并,看了题解才发现 if(fx == fy)要输出当前集合的秩而不是0。。。#include #include #include #include #include #include #include #include #include #inc原创 2014-07-25 20:02:05 · 1216 阅读 · 0 评论 -
HDU 2473 Junk-Mail Filter 删点并查集
删点并查集,就是用一个新的点标代替之前的点标即可。。 y一下就可以了#include #include #include #include #include #include #include #include #include #include using namespace std;#define mod 1000000007#define ll int#原创 2014-07-25 22:51:38 · 1238 阅读 · 0 评论 -
HDU 3047 Zjnu Stadium 带权并查集
gg,y一下就是每个点到根的距离用rank维护,,#include #include #include #include #include #include #include #include using namespace std;#define mod 1000000007#define ll int#define rank Rank#define N 100100原创 2014-07-24 22:10:09 · 1090 阅读 · 0 评论 -
ZOJ 3789 Gears 并查集
题意:(copy的!)有N个齿轮,三种操作操作L x y:把齿轮x,y链接,若x,y已经属于某个齿轮组中,则这两组也会合并。 操作Q x y:询问x,y旋转方向是否相同(等价于齿轮x,y的相对距离的奇偶性)。操作D x :拆下齿轮x,并且x所在的齿轮组不会断开操作S x : 查询齿轮x所在的齿轮组有多少齿轮。 其实就是并查集了原创 2014-06-02 23:50:04 · 1642 阅读 · 0 评论 -
POJ 3694 双连通缩点+LCA+并查集
题意:给定n个点m条边的无向图Q个询问:问加上这条边后图中还有多少桥。注意询问不是独立的(加了边在后面都有效)思路:先缩点得到缩点树,加上一条边后[u, LCA(u,v), v] 成环,则删掉这里的点,并把集合向上合并#include #include #include #include #include #include #include原创 2014-01-24 18:08:17 · 1611 阅读 · 0 评论 -
HDU 3635 并查集+路径压缩+记录每个点移动次数
题意:给定n个点 oper个操作每个点有1个龙珠下面2种操作:T u v 把u点所有龙珠搬到vQ u 问u点当前所在城市 u点所在城市有几个龙珠 u点被移动几次 思路:并查集可以求出 u 点所在城市,记录每个点的 son(子节点数)可以求出 某城市的龙珠数量用step 记录每个点被移动了几次 #include#includeinline int原创 2013-11-19 22:10:06 · 1668 阅读 · 0 评论 -
UESTC 1811 Hero Saving Princess
题意:T个测试数据n m //n个点 m条边m条无向边que//下面有que个数据a b // 表示a点的钥匙在b中 问,从0点开始能否遍历所有的点 思路:用BFS搜一遍即可,注意图是否连通,用并查集判断一下BFS()时,q为正常队列,p为走到那个点是锁住时将q中点移到p中这里为了思路清晰,先走一遍(这一遍就算拿到钥匙也不开门,就是这么走一遍先) #原创 2013-09-05 08:47:36 · 1967 阅读 · 0 评论 -
Codeforces 91C Ski Base 加边求欧拉回路数量
题目链接:点击打开链接题意:给出n个点m条无向边的图开始图里没有边,每次加一条边,然后输出图里欧拉回路的条数。思路:We will count the number of ski bases including the base consisted of empty subset of edges (before printing just subtract one).原创 2015-03-18 23:01:07 · 1664 阅读 · 0 评论