图论
DOM.PIG
讲一个故事,从零开始。
展开
-
匈牙利算法
匈牙利算法简称NTR算法(滑稽=_=),是用来查找一个二分图中,最多能有多少相互匹配的边的数量(相互匹配的边,即该边和其他任何边都不共用同一个节点。)算法设计import java.util.Arrays;import java.util.Scanner;public class Main { static int n1,n2,m; static int N=510,M=100010; static int h[]=new int[N],e[]=new int[M],ne[]=new i原创 2022-04-08 16:39:00 · 371 阅读 · 0 评论 -
染色法判定二分图
二分图定义:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。性质:二分图当且仅当图中不含奇数环将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图二分图:一定不含有奇数环,可能包含长度为偶数的环, 不一定是连通图根据以上性质我们设计染色法确定二分图的思路是:将图中的每个点进行标记,原创 2022-04-08 16:37:59 · 246 阅读 · 0 评论 -
拓扑排序_
拓扑排序一个拓扑序列中,从入读为0的点开始遍历,得到的一个序列一定是从前指向后的,即有向无环图得到的序列若存在从后指向前的序列,则一定不满足拓扑序列,也一定不是有向无环图。步骤:1.将所有入度为0的点加入队列中2.宽搜队列,每次遍历下一个点时,删除该点与上一个节点的连接,同时让该点的入读–,当该点的入读为0时入队即可3.遍历结束后查看是否所有点都进入过队列,若进入过则该图存在拓扑序列,该拓扑序列即为队列中的顺序队列。 static boolean topsort() { int z=0原创 2022-04-08 16:36:46 · 57 阅读 · 0 评论 -
(更新完善版)堆优化dijkstra与spfa算法解决无负权回路单源最短路问题
启动:2022.2.16总结系统学习最短路算法之无负权回路单源最短路算法:有负权回路(有回路,且回路长度总和为负数(回路之间各个点之间边的和是一个负数,那么回路转下去为负无穷))最短路不一定存在:总体来说解决无负权回路单源最短路算法常用基础算法有1.dijkstra()2.spfa()两种算法其中dijkstra使用堆优化版本spfa是贝尔曼福特算法队列优化的结果接下来来搞这俩算法!堆优化版本dijkstra()–>java语言版时间复杂度O(mlogn) (n是点个数原创 2022-02-17 08:49:25 · 540 阅读 · 0 评论 -
判断是否为完全二叉树
判断一棵树是否为完全二叉树!原创 2022-01-23 16:33:22 · 2520 阅读 · 0 评论 -
重建二叉树
根据前序,中序遍历结果重建二叉树!原创 2022-01-18 17:15:43 · 392 阅读 · 0 评论