
并查集
iroy33
这个作者很懒,什么都没留下…
展开
-
并查集判连通性+判环 hdu 1272 && hdu 1325
hdu 1272 并查集判环 无向图 连通性+无环易错点:1、忘了考虑不能是森林 有多个根结点 或 结点数=边数+1 即判断连通性2、样例为0 0应该是Yes,空树#include<cstdio>//数组应该开多大?//不满足树的判定:1、有两个父亲using namespace std;//vector<int> fa;const ...原创 2019-02-14 17:56:07 · 181 阅读 · 0 评论 -
并查集删除点 hdu2473
hdu 2473#include<cstdio>#include<cstring>using namespace std;const int N=1e6+2e5+10;int n,m;int fa[5200100];int vis[N]; //一开始脑抽以为vis只要开到1e5,emmm,改了之后就A了void i...原创 2019-02-15 12:07:16 · 203 阅读 · 0 评论 -
UVA1395 Slim Span && hdu 1598 find the most comfortable road
UVa 1395 (LRJ紫书P358)把边权按从小到大排序,对于一个连续的区间[L,R],如果这些边使得n个点全部连通,一定存在一个苗条度<=W[R]-W[L](W[R]是最大值)从小到大枚举L,对于每个L,从小到大枚举R(R>=L),同时用并查集将新加入【L,R】的边两端合成一个集合,当所有点连通时停止枚举R,换下一个L继续枚举注意所有的L都要枚举#incl...原创 2019-02-15 17:59:15 · 138 阅读 · 0 评论 -
hdu 3367 最大生成树+判环
不能最大生成树+最大的一条边,但是为什么呢?if(fx!=fy) 如果两棵树上不是都有回环,那么可以合并,fx挂在fy上,如果其中一个有环,fy标记为有环if(fx==fy&&!(circle[x]+circle[y]) 如果两棵树上都没有回环,那么x和y还能合并,环数变为1#include<stdio.h>#include<algorithm&g...原创 2019-02-15 21:59:42 · 345 阅读 · 0 评论 -
带权并查集——详细解释精华含义及例题hdu 1829&&poj 1703 && poj 1182 && hihocoder 1515 &&hdu 3047 && hdu 3038
非常非常通俗易懂注意向量的方向:从根向x root->i=val[i]hdu 1829val[i]=0 表明与结点i与根结点同性 ,val[i]=1是异性路径压缩的时候,x会挂到rootx下路径压缩时:rootx->x=rootx->fa[x]+fa[x]->x 即 val[x]=(val[x]+val[fa[x]])%2;合并时:y在的...原创 2019-02-13 22:47:29 · 177 阅读 · 0 评论 -
【蓝桥杯】并查集 国王的烦恼
问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达,后一天却不...原创 2019-05-21 15:34:08 · 274 阅读 · 0 评论