![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
ssl_yty
这个作者很懒,什么都没留下…
展开
-
【洛谷 P7528】 【并查集】 【DFS】 Portals G
【洛谷 P7528】 【并查集】 【DFS】 Portals G题目解题思路题目出得很迷惑,掩人耳目啊题目大意有2n个点每次给出5个数,c,p1,p2,p3,p4,p1与p2连边,p3与p4连边,c是换边的花费 例如p1本来和p2连,现在想p1与p3连,p2与p4连,那么花费是c求要使这2n个点互相连通,最小的花费看到题目里加粗的那行字,每个点只会出现两次,那么只会有2条边和它相连一个点能到达的点一定是一个环现在就是要花费ci使各个环相通花费按从小到大排序因为p1与p2是一个环原创 2021-08-22 20:15:04 · 76 阅读 · 0 评论 -
【洛谷 P7299】 【并查集】 Dance Mooves S
【洛谷 P7299】 【并查集】 ance Mooves S题目解题思路可以先求出k轮后i能到达next[i]可以发现将会组成由很多个简单环组成的图,它们能到达的点可以共享给同一个环内的所以可以用并查集统计出每一个环,暴力合并环内点能到达的点集代码#include<iostream>#include<vector>#include<cstdio>#include<bitset> #include<set>using原创 2021-08-17 21:01:33 · 202 阅读 · 0 评论 -
【gmoj】【线段数】 【并查集】 graph
【gmoj】【线段数】 【并查集】 graph题目解题思路因为有减边的操作所以我们可以将每条边按存在的时间丢进线段树中维护用按秩并查集维护边二分图如果存在奇环就不成立如果一条边的两端不在同一集合就合并,放进栈中如果在同一集合且是奇环就直接输出NO小小优化,如果当前已经是奇环,那可以不用往下了,输出 l~r 的NO跑完后要弹出栈代码#include<iostream>#include<cstdio>using namespace std;const原创 2021-08-14 17:01:48 · 87 阅读 · 0 评论 -
【gmoj】 【并查集】 公路修建问题
【gmoj】 【并查集】 公路修建问题题目解题思路直接跑克鲁斯卡尔绝对会超时利用它的思想用并查集实现先快排一级公路的费用如果路的两端不在一个集合就可以修路再快排二级公路的费用如果路的两端不在一个集合就可以修路代码#include<algorithm>#include<iostream>#include<cstdio>using namespace std;struct lzf{ int x,to,c1,c2;}f[100010];i原创 2021-08-11 22:07:03 · 85 阅读 · 0 评论 -
【gmoj】 【tarjan】 【拓扑】 【并查集】 QYQ在艾泽拉斯
【gmoj】 【tarjan】 【拓扑】【并查集】 QYQ在艾泽拉斯题目解题思路因为可能出现环用tarjan缩点再建一个新图用按拓扑序跑一边DP求出一个连通块中从哪个点跑出来的价值最大k次闪现可以看作可以跑k+1个连通块排完序后,取出前k+1大求和即为答案代码#include<algorithm>#include<iostream>#include<cstdio>#include<queue>using namespace原创 2021-08-09 21:20:28 · 95 阅读 · 0 评论 -
【ybtoj 高效进阶 3.1】 【并查集】 超市购物
【ybtoj 高效进阶 3.1】 【并查集】 超市购物题目解题思路很容易想到贪心按收益降序排序在能卖的时间里的最后一天卖掉但是每次查找最后的一天会超时想到用并查集优化将每个日期看作一个集合如果这天已经有东西卖出则归入前一天代码#include<algorithm>#include<iostream>#include<cstdio>using namespace std;struct lzf{ int j,r;}a[10010];原创 2021-04-17 11:14:29 · 74 阅读 · 0 评论 -
【ybtoj 高效进阶 3.1】 【并查集】 逐个击破
【ybtoj 高效进阶 3.1】 【并查集】 逐个击破题目解题思路换一个思路求出保留的边用总边权减去保留的能被保留下来的边的两个端点不能都被k军团占领我们要做的就是维护每个连通块有被占领的集合代表就是被占领的,否则无所谓按边权降序排序判断每一条边的两个端点如果有没被占领的就减去此条边权两个端点如果不在同一集合合并两个集合代码#include<algorithm>#include<iostream>#include<cstdio>原创 2021-04-17 08:22:41 · 134 阅读 · 0 评论 -
【ybtoj 高效进阶 3.1】 【并查集】 银河英雄传说
【ybtoj 高效进阶 3.1】 【并查集】 银河英雄传说题目解题思路带权并查集用dis记录当前节点到本集合第一个元素的距离tot记录当前集合所含元素个数查找更新当前节点的距离累加上父节点到根节点的距离路径压缩合并x集合的第一个元素的距离变为y集合的元素个数y集合元素个数累加上x集合的元素个数询问即两个元素到根节点的距离的差代码#include <iostream>#include <cstdio>#include <cmath>原创 2021-04-08 17:23:12 · 99 阅读 · 0 评论 -
【ybtoj 高效进阶 3.1】【并查集】 并查集
【ybtoj 高效进阶 3.1】【并查集】 并查集题目解题思路并查集模板题合并两个不一样的集合查找元素所在集合代码#include<iostream>#include<cstdio>using namespace std;int n,m,z,x,y,fa[10010];int find(int t){ if (fa[t]==t) //本身即是根 return t; else return fa[t]=find(fa[t]);原创 2021-03-31 16:58:02 · 98 阅读 · 0 评论 -
洛谷 P1111 修复公路 题解
修复栅栏洛谷 P1111题目A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。给出A地区的村庄数N,和公路数M,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)输入第1行两个正整数N,M下面M行,每行3...原创 2020-02-28 21:37:27 · 922 阅读 · 3 评论 -
矩形 题解
矩形 题解矩形题目在一个平面上有nnn个矩形。每个矩形的边都平行于坐标轴并且都具有值为整数的顶点。我们用如下的方式来定义块。每一个矩形都是一个块。如果两个不同的矩形有公共线段,那么它们就组成了一个新的块来覆盖它们原来的两个块。例子:在图1中的矩形组成了两个不同的块。写一个程序:从文件PROPROPRO.INININ中读入矩形的个数以及它们的顶点。找出这些矩形形成的不同的块的个数。将结果写入文件PROPROPRO.OUTOUTOUT。输入在输入文件PROPROPRO.ININI原创 2020-08-09 21:46:24 · 605 阅读 · 0 评论 -
洛谷 P2505 旅行 题解
旅行 题解洛谷 P2502解题思路将速度从小到大排枚举断点连接两个点假如起点可到达终点更新答案输出记得化简代码#include<algorithm> #include<iostream>#include<cstdio>using namespace std;int xx,yy,ta,wo,n,m,s,t;double ans=2147483647;int f[1000010];struct hy{ int x,y,p;}h[1001原创 2020-07-22 16:40:19 · 221 阅读 · 0 评论 -
最短网络 题解
最短网络 题解最短网络题目农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000输入第一行: 农场的个数,N(3<=N<=100)。第二行…结尾: 后来的行包含了一个N*N的矩阵原创 2020-07-22 15:51:49 · 615 阅读 · 0 评论 -
家族 题解
家族 题解家族题目若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:xxx和yyy是亲戚,yyy和zzz是亲戚,那么xxx和zzz也是亲戚。如果xxx,yyy是亲戚,那么x的亲戚都是yyy的亲戚,yyy的亲戚也都是xxx的亲戚。输入第一行:三个整数nnn,mmm,ppp,(nnn<=50000,mmm<=50000,ppp<=50000),分别表示有nnn个人,mmm个亲戚关系,询问ppp对亲戚关系原创 2020-07-22 08:20:46 · 546 阅读 · 0 评论