并查集
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 · 215 阅读 · 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 · 232 阅读 · 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 · 163 阅读 · 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 · 372 阅读 · 0 评论 -
带权并查集——详细解释精华含义及例题hdu 1829&&poj 1703 && poj 1182 && hihocoder 1515 &&hdu 3047 && hdu 3038
非常非常通俗易懂 注意向量的方向:从根向x root->i=val[i] hdu 1829 val[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 · 207 阅读 · 0 评论 -
【蓝桥杯】并查集 国王的烦恼
问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达,后一天却不...原创 2019-05-21 15:34:08 · 301 阅读 · 0 评论
分享