邻接矩阵 适用于小型的图,对于稀疏图很浪费,可用二维数组实现 邻接表 适用于稀疏图,可用vector实现 求最小生成树 利用 Kruska 算法,可以直接保存边 u,v,w,以边的编号为索引 利用 prim 算法,需要每次取得最小的顶点,类似与 Dijkstra 算法,可以用邻接矩阵完成 求最短路径 ...
分类:
其他好文 时间:
2019-03-19 12:08:55
阅读次数:
134
题目链接:https://www.luogu.org/problemnew/show/P3366 思路: 求最小生成树的模板题,求MST有两种算法——Prim、Kruskal。 两者区别:Prim在稠密图中比Kruskal优,在稀疏图中比Kruskal劣。Prim是以更新过的节点的连边找最小值,Kr ...
分类:
其他好文 时间:
2019-02-05 13:05:34
阅读次数:
229
上一期说完了什么是最小生成树,这一期咱们来介绍求最小生成树的算法:kruskal算法,适用于稀疏图,也就是同样个数的节点,边越少就越快,到了数据结构与算法这个阶段了,做题靠的就是速度快,时间复杂度小。 网上一搜就知道大家都会先介绍prim算法,而我为什么不介绍prim算法呢?因为小编认为这个算法理解 ...
分类:
编程语言 时间:
2019-02-02 19:19:58
阅读次数:
250
分类:单源最短路径算法。 适用于:稀疏图(侧重于对边的处理)。 优点:可以求出存在负边权情况下的最短路径。 缺点:无法解决存在负权回路的情况。 时间复杂度:O(NE),N是顶点数,E是边数。(因为和边有关,所以不适于稠密图) 算法思想:很简单。一开始认为起点是“标记点”(dis[1] = 0),每一 ...
分类:
编程语言 时间:
2019-01-17 16:28:18
阅读次数:
195
适用于:稀疏图(侧重于对边的处理)。 时间复杂度:O(KE),K是常数,平均值为二,E是边数。(因为和边有关,所以不适于稠密图) 来源:SPFA是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。 这个算法简单地说就是队列优化的Bellman-Ford,利用了每个点不会更新次数太多 ...
分类:
编程语言 时间:
2019-01-17 16:26:00
阅读次数:
157
传送门 C++ CE G++ AC什么鬼... 这题虽说是网络流 但是可以用之前的KM最优匹配做 会的话还是比较好写的 这里也发现了最大流/费用流更适合离散图 匈牙利/KM更适合稀疏图 Code: ...
分类:
其他好文 时间:
2018-11-27 21:10:36
阅读次数:
219
原文地址:https://blog.csdn.net/biran007/article/details/4087866 大规模密集图:dijkstra家族都有较好表现,spfa则不行 极端链状图:spfa很好表现,朴素dijkstra则不行,优化的dij则还不错 20000个结点的稀疏图:spfa比 ...
分类:
其他好文 时间:
2018-10-11 01:49:24
阅读次数:
330
原题传送门: "CF1051F The Shortest Statement " 题目大意,给你一个稀疏图,q次查询,查询两点之间距离 边数减点小于等于20 ~~这不是弱智题吗,23forever dalao又开始虐题~~ ~~作为蒟蒻的我只能在一旁出售烤绿鸟和main包,和大家一起吃西瓜~~ ~~ ...
分类:
其他好文 时间:
2018-10-04 11:22:33
阅读次数:
161
用于求稀疏图上的全局最短路。 考虑将带负权的图变为不带负权的图,再跑$n$次Dijkstra。 方法:新建点S,向所有点连边权为$0$的边,然后以S为起点跑SPFA。然后将每条边的权值重新赋为$dist[u\Rightarrow v]+dj[u] dj[v]$即可。 ...
分类:
编程语言 时间:
2018-09-27 22:11:11
阅读次数:
135
今天学长对比了最小生成树最快速的求法不管是稠密图还是稀疏图,prim+邻接表+堆优化都能得到一个很不错的速度,所以参考学长的代码打出了下列代码,make_pair还不是很会,大体理解的意思是可以同时绑定两种元素(和struct差不多)但加入堆的时候以第一个元素来进行优先队列,建立的是大根堆由于每次要 ...
分类:
其他好文 时间:
2018-09-19 20:01:49
阅读次数:
189