图论
文章平均质量分 50
C++图论
Andysun06
这个作者很懒,什么都没留下…
展开
-
最小生成树Kruskal算法详解
Kruskal算法简介:Kruskal 算法是一种用来求最小生成树的算法,在稀疏图中比 Prim 有更高的效率,且方便实现,所以本文重点讲解 Kruskal 算法的用途和使用方法Kruskal算法原理:Kruskal 算法主要利用贪心的思想使得边权和最小Kruskal 算法步骤:把 mmm 条边按边权从小到大排序把图中的 nnn 个顶点看成独立的 nnn 棵树组成的森林;先从边权小的边开始循环,通过并查集判断添加这条边后是否会形成环(也就是能否连接两个不同祖先的点),如果可以,则添加这条边。原创 2021-08-10 17:41:26 · 1054 阅读 · 0 评论 -
C++并查集用法教程(文档&视频教程)
并查集,顾名思义,就是有合并,查找等操作的集合。文档教程????这里视频教程????这里∙\bullet∙ 程序模板: #include<iostream> #include<cstdio> using namespace std; int a[10001],i; int zhao(int x) { //用来查找x的祖宗 if(a[x]==原创 2021-08-09 17:57:26 · 205 阅读 · 0 评论 -
C++最短路径Dijkstra算法详解
第一步定义数组和变量:int f[101][101]; //将得到的数据转化成邻接矩阵int ans[101]; //用来记录答案(从1到各点的最短路径)int q1[105],l=0,r=1; //队列,详见《笔记——栈,队列,快速幂,线性筛,并查集,随机数》bool YN[101]; //记录一个点是否入队然后初始化:for(re int i=1;i<=n;++i){ YN[i]=false; for(re int j=1;j<=n;++j){ if(i!原创 2020-07-29 15:26:06 · 593 阅读 · 0 评论 -
C++链式前向星详解
概念:链式前向星是一种主要根据存边号来存图的存储结构需要建立的变量: cnt,head[点数],to[边数],nxt[边数]。cnt是一个一直在递增的变量,表示正在建的是第cnt条边。head[u]表示从u点向外连的边的最后一条边(根据存边的顺序)的编号。to[i]表示第i条边指向的点。nxt[i]表示对于编号为i的边,它的起始节点所连的边根据建边顺序i编号的边的上一条边的编号。部分代码:inline void add(int u,int v){ //建立..原创 2020-07-28 16:26:10 · 915 阅读 · 0 评论