图论
文章平均质量分 57
串C
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单源最短路的建图方式
题目1:热浪分析:由题目可知,求的是两个点之间的最短距离,边权为正数且点数和边数属于同一量级,使用堆优化版的dijkstra进行求解即可。这道题是无向图,我们建有向图能求解吗?不能。 因为如果a 和 b有一条边, 我们只建一条有向边, 意味着 a能到b, b确不能到a, 如果输入时起点是b,终点是a,那么我们就到达不了a,答案出错。关于能否只建有向图求解无向图的问题, 一定要证明,如果证明不出来,直接按题目要求建立无向图。时间复杂度:O(m∗logm)O(m * log ^m)O(m∗logm)原创 2022-05-31 10:03:28 · 188 阅读 · 0 评论 -
二分图的两个常用算法
染色法判断是否是二分图题目1: 染色法判定二分图时间复杂度:O(n+m)O(n + m)O(n+m)代码区:#include<iostream>#include<cstring>using namespace std;const int N = 1e5 + 10, M = 2e5 + 10;int n, m;int h[N], e[M], ne[M], idx;int color[N];void add(int a, int b){ e[idx原创 2022-05-29 09:48:59 · 144 阅读 · 0 评论 -
最小生成树
最小生成树的图中允许存在负环prim思路:时间复杂度:O(n2+m), n 表示点数,m 表示边数模版:int n; // n表示点数int g[N][N]; // 邻接矩阵,存储所有边int dist[N]; // 存储其他点到当前最小生成树的距离bool st[N]; // 存储每个点是否已经在生成树中// 如果图不连通,则返回INF(值是0x3f3f3f3f), 否则返回最小生成树的树边权重之和int prim(){原创 2022-05-28 18:00:28 · 179 阅读 · 0 评论 -
最短路常用算法
最短路的专有名词:源点: 表示起点汇点: 表示终点稀疏图: 点数和边数在同一个量级稠密图: 边数和点数的平方在同一个量级注意:求最短路的要求的是该图不能含有负环, 如果图中有负环, 那么我们可以一直在这个负环中走无穷多次, 那么我们的最短路的值就会变成负无穷。单源最短路和多源最短路有什么区别?单源最短路: 求的是固定的一个起点, 到它所有能到的点之间的距离。多源最短路: 求的是起点不固定, 即任意两个点之间的距离普素版dijkstra思路:模版:int g[N][N]; /原创 2022-05-28 16:35:10 · 268 阅读 · 0 评论 -
拓扑排序算法
算法一:拓扑排序:模版:时间复杂度: O(n+m), n 表示点数,m 表示边数bool topsort(){ int hh = 0, tt = -1; // d[i] 存储点i的入度 for (int i = 1; i <= n; i ++ ) if (!d[i]) q[ ++ tt] = i; while (hh <= tt) { int t = q[hh ++ ];原创 2022-05-28 10:27:23 · 138 阅读 · 0 评论
分享