![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 66
并查集
Fiveneves
这个作者很懒,什么都没留下…
展开
-
2020 Multi-University Training Contest 2-1001.Total Eclipse
1001.Total Eclipse题目链接-1001.Total Eclipse题目大意nnn个点mmm条边的无向图,每个点有一个正点权,每次选择一个连通子图,将里面的权值都减111,求所有点权为000的最小操作次数解题思路贪心+并查集贪心+并查集贪心+并查集常规思路就是每次选择一个最大的连通块,将里面的数同时减小,知道最小值变为000,然后将变成零的点删除,再分裂多个联通块继续执行上述操作但是这样操作明显会超时,那么我们就可以把操作顺序倒过来,用并查集反向处理连通块,先把大的点权值减原创 2020-07-28 01:34:59 · 232 阅读 · 0 评论 -
2020智算之道初赛第二场 - 高校组 C.情报战
C.情报战题目链接-C.情报战解题思路并查集+虚根并查集+虚根并查集+虚根附上代码#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<stdio.h>#include<ctype.h>const int N=3e5+10;inline void read(int &x){ char t=getchar(); while(!isdigit(t)) t=getchar();原创 2020-07-23 15:51:49 · 154 阅读 · 0 评论 -
SWUST OJ 1065: 无向图的连通分量计算
1065: 无向图的连通分量计算题目链接-1065: 无向图的连通分量计算解题思路并查集或dfs并查集或dfs并查集或dfs并查集并查集并查集:将能相互连通的点的集合赋予一个共同的父亲(即合并),然后统计父亲的个数就行了dfsdfsdfs:循环找没有被标记过的点,然后对该点进行深搜,一次深搜能访问该节点所有能访问的边,统计有几次dfsdfsdfs就能知道有几个连通分量了(与dfsdfsdfs求连通块一个思路)附上代码并查集并查集并查集#pragma GCC optimize("-Ofa原创 2020-05-19 10:31:27 · 1026 阅读 · 0 评论 -
HDU 1863. 畅通工程
1863. 畅通工程题目链接-1863. 畅通工程解题思路最小生成树最小生成树最小生成树-Kruskal板子题直接套板子,合并的时候cnt++cnt++cnt++计一下数,最后判断一下时候全部联通(即cnt==m-1)即可全部联通则输出最低成本,否则输出?具体操作见代码附上代码#pragma GCC optimize("-Ofast","-funroll-all-loops"...原创 2020-04-20 21:05:02 · 152 阅读 · 0 评论 -
洛谷 P2872 [USACO07DEC]Building Roads S
P2872 [USACO07DEC]Building Roads S题目链接-P2872 [USACO07DEC]Building Roads S解题思路KruskalKruskalKruskal附上代码#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define ...原创 2020-04-18 00:46:11 · 1005 阅读 · 0 评论 -
Codeforces Round #479 (Div. 3) E. Cyclic Components
E. Cyclic Components题目链接-E. Cyclic Components题目大意给你nnn个点和mmm条边,求所构成图中单圈环的个数解题思路并查集并查集并查集很明显单圈环每个点的度都为2,所以我们可以用数组cnt[]记录每个点的度,只需要找度为2的点即可如果一条边两个顶点的度都为2,我们可以用并查集判断两点是否在一个子图里用并查集判断两个点父节点是否相同...原创 2020-04-11 01:50:50 · 145 阅读 · 0 评论