Minyou03

导航

2024年10月24日 #

二分图的判别(染色法、匈牙利算法)

摘要: 二分图的判别: 首先二分图是指一个图如果没有奇数环,则该图是二分图。 其实这两种算法都是基于dfs来做的,要深刻理解每个算法的dfs指代的是什么。 1、染色法:所谓的染色是指所有边的每一条边的两个端点颜色不同,算法思路就是让每个顶点都做一次dfs,判断其中有无同一条边的端点颜色相同。 #includ 阅读全文

posted @ 2024-10-24 22:36 Minyou0713 阅读(7) 评论(0) 推荐(0) 编辑

最小生成树

摘要: 最小生成树:能够连接所有点的最小边权之和,但是任意两点之间的距离不一定最短(与最短路区别) Prim算法:算法思路大致和dijkstra算法一致,只是dist不是距离源点的距离了,而是距离集合的距离(单独的一条边权) kruskal算法:先对边进行排序,利用并查集判断是否所有边都加进来了,由于已经排 阅读全文

posted @ 2024-10-24 11:52 Minyou0713 阅读(5) 评论(0) 推荐(0) 编辑

2024年10月23日 #

最短路问题

摘要: 图论:最短路问题 一、单源最短路问题--所有边均为正权边--dijkstra算法 dijkstra算法基于贪心,思路本质上就是从节点1开始,一遍一遍找距离节点1最近的点,找到最近的点之后标记并用该点更新其所相邻的点与1的距离, 之后再从未标记的点中找到距离最短的点(实际上只是找标记点的临点)//堆优 阅读全文

posted @ 2024-10-23 14:18 Minyou0713 阅读(16) 评论(0) 推荐(0) 编辑

DFS与BFS

摘要: 图论: 一、图中DFS与BFS 数和图的存储方式: m与n^2一个级别属于稠密图,m与n一个级别则属于稀疏图,可以从题目中明显看出来 稠密图:邻接矩阵 稀疏图:邻接表 #include<bits/stdc++.h> using namespace std; const int N = 10010,M 阅读全文

posted @ 2024-10-23 14:14 Minyou0713 阅读(3) 评论(0) 推荐(0) 编辑

2024年10月22日 #

BFS应用:拓扑排序

摘要: 图论:BFS应用->拓扑排序(有向无环图)(判环算法) 拓扑排完的边的顺序都是一个方向的,可以判断一个图是否有环,如果入队元素不是n个说明一定有环,若要判断负环就需要用spfa等算法了 思路就是把每个入度为0的点插入队列,最后看一下入队元素是否有n个,是则为拓扑排序 #include <bits/s 阅读全文

posted @ 2024-10-22 14:33 Minyou0713 阅读(11) 评论(0) 推荐(0) 编辑