- 2024-11-01计蒜客:修建大桥(并查集/DFS/BFS)
找到有几张连通图即可解决问题。DFS:1#include<bits/stdc++.h>2usingnamespacestd;3intn,m;4intgraph[1005][1005]={0};5boolvisited[1005]={false};6voiddfs(intp){7if(visited[p]){8return;9}10visited[p]
- 2024-10-30【并查集】【中间值范围】NOIP2017]奶酪
https://ac.nowcoder.com/acm/contest/22904/1027开了ll还见祖宗注意x^2+y2算完之后先判断有没有超4r2的范围,没有的话再计算z^2,算是对longlong溢出的特判#include<bits/stdc++.h>typedeflonglongll;usingnamespacestd;classUnionFind{public:UnionFind(ll
- 2024-08-29高阶数据结构-->图(中)
前言:本文介绍了并查集的优化方案和图的2种基本的遍历方式。并查集的优化:普通的并查集可以看看我的这篇文章:高阶数据结构-->图(上)-CSDN博客先来谈谈为什么要优化?原先的并查集在面对一些极端情况时,查找根的效率会降低不少,举个例子:示例:此时当我们要查找5的根的时候,会不断往
- 2024-08-16算法模板
拓扑排序点击查看代码publicBooleanbfsOptimize(intn,int[][]edges){//初始化入度数组,每个节点有两个元素,第一个元素表示入度,第二个元素暂时未使用int[][]indegrees=newint[n][2];//初始化邻接表,用于存储图的连接关系List<List<Integer>>adj
- 2024-05-27Kruskal 算法实现最小生成树
1.算法思想将整个图的所有边和权值拿出来,放进一个列表中,再将按权值大小从小到大排列,每次取出权值最小的边放回图中,并在每次放进图的过程中判断放进这个边有没有形成环(形成环的话就不能放进该边),再将当前数的权值相加,求得最小权值。 Kruskal算法是一种用于在加权图中找到最