
并查集
文章平均质量分 55
并查集运用
Selvaggia
这个作者很懒,什么都没留下…
展开
-
疫情防控【并查集,离线查询,依次删除节点逆向转化为逐渐添上节点】
【代码】疫情防控【并查集,离线查询,依次删除节点逆向转化为逐渐添上节点】原创 2023-07-15 12:34:25 · 808 阅读 · 0 评论 -
重新排列奶牛(并查集,连通块中点的数量
AcWing 4872. 最短路之和(Floyd)1921. 重新排列奶牛(并查集,连通块中点的数量)树形dp原创 2023-03-31 23:05:28 · 336 阅读 · 0 评论 -
扩展域并查集
n) 和find(b+n) 即a的天敌和 b的食物要关联在一起(循环的食物链关系)a与b友好,则find(a)==find(b),a,b在同一个域内。find(a+n) 和find(b) 即a的食物和b要关联在一起。第二个域中的a是作为别人食物的a,第三个域中的a是作为别人天敌的a,find(a) 和find(b+2。n) 即a要和b的天敌关联在一起。第一个域中的a是作为本身的a,对于x和y,存在三种关系。.........原创 2022-08-07 21:07:23 · 516 阅读 · 0 评论 -
畅通工程(kruskal做法)
kruskal、并查集畅通工程(已知部分联通)畅通工程再续 畅通工程(已知部分联通) 已知部分联通,不能直接用优化版的prim算法,看早期博客 //#include <bits/stdc++.h> #include <iostream> #include <vector> #include <algorithm> using namespace std; //#define int long long const int N=1005; struct e原创 2022-04-23 14:51:37 · 412 阅读 · 0 评论 -
七段码(爆搜,set去重、二进制去重)
七段码七段码set去重二进制去重(有点像bitset)暴力,要特判集中情况,容易遗漏啦 七段码 set去重 #include <bits/stdc++.h> /*#include <iostream> #include <algorithm> #include <set>*/ using namespace std; const int N=8; int g[8][8]; int fa[8]; int res=0; set<set<int>原创 2022-04-07 16:39:25 · 567 阅读 · 2 评论 -
并 查 集
将两个集合合并 询问两个元素是否属于同一个集合 belong[x]=abelong[x]=abelong[x]=a if(belong[x]==belong[y])if(belong[x]==belong[y])if(belong[x]==belong[y]) 合并两个集合,集合a 2000个元素,集合b 1000000个元素,要么把集合a的元素的集合编号全部改为b,要么把集合b的元素的集合编号全部改为a,复杂耗时 并查集可以以近乎O(1)的复杂度实现以上两个操作 每一个集合都用树的形式维护 把一整棵树插原创 2022-02-15 23:27:03 · 84 阅读 · 0 评论 -
并查集之按秩合并
并查集 //#include <bits/stdc++.h> #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; //#define int long long const int N=3e4+5; int n,m; int fa[N]; int rank[N];//按秩合并, //本来是将元素少的集合原创 2022-04-23 13:39:09 · 577 阅读 · 0 评论 -
并查集习题
这里写目录标题Chemical_table(思维,并查集求连通块数)Ubiquitous_ReligionsIce_Skating Chemical_table(思维,并查集求连通块数) 并查集的应用中,首先需要思考,并查集用于维护哪些节点构成的集合,再者就是分析,哪些节点该合并在同一个集合中 宗教信仰那题,比较明显,构成集合的节点是信仰着某个宗教的学生,信仰同一个总角的同学在同一集合 雪上漂移drift那题,构成集合的节点是雪堆的编号,能够任意相互到达的雪堆们在同一集合,虽然这题给出的是雪堆的坐标,但这只原创 2022-05-01 00:01:30 · 332 阅读 · 0 评论