"Luogu P4779" 利用堆/优先队列快速取得权值最小的点。 ...
分类:
编程语言 时间:
2019-11-06 15:08:59
阅读次数:
61
其实这篇文章曾经在 "初赛复习" 里,只是觉得把它拿出来以后可能找的更方便一些。 Dijkstra:贪心策略,每次取与源点距离最近的点。一个点不能重复入堆,不适用于负权边(或负环) 1. 朴素版 时间复杂度:$O((m+n)logn)$ 以前打堆优化好像有很多都在mark的地方打错了,但数据比较水。 ...
分类:
其他好文 时间:
2019-11-05 17:03:14
阅读次数:
90
题目链接: "https://www.luogu.org/problem/P1144" 其实这道题目是最短路的变形题,因为数据范围 $N \le 10^6, M \le 2 \times 10^6$ ,所以直接用Dijkstra算法是不行的,可以使用 Dijkstra+堆优化 或者 SPFA算法来实 ...
分类:
其他好文 时间:
2019-11-04 21:25:55
阅读次数:
70
简单的纯板。prim算法适合稠密图,kruskal算法适合简单图。prim算法复杂度O(n^2),n是图中点的个数,kruskal算法复杂度O(eloge),e为图中边的条数。值得一提的是,加入堆优化的prim算法复杂度可达O(nloge)。 这个是用链式前向星存边+堆优化的prim算法。 ...
分类:
编程语言 时间:
2019-11-03 01:23:29
阅读次数:
94
本人水平有限,题解不到为处,请多多谅解 本蒟蒻谢谢大家观看 题目:传送门 最短路板子题:迪杰斯特拉+堆优化 注意:因为我建的是大根堆,所以要将距离取负,再存入大根堆堆中,这样队首就是最小值 直接套模板即可 code: ...
分类:
其他好文 时间:
2019-10-30 18:37:48
阅读次数:
86
~~我不信还有人比这个全~~ 总共三种,大家最熟悉的$Kruskal$,$Prim$以及不那么熟悉的$Bor?vka$。 时间复杂度:$Kruskal:\mathcal{O}(MlogM),Prim:\mathcal{O}(N^2),Bor?vka:\mathcal{O}(MlogN)$ 堆优化$P ...
分类:
编程语言 时间:
2019-10-28 21:16:33
阅读次数:
159
首先来一段百度百科压压惊。。。 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 让我来翻译一下 ...
分类:
编程语言 时间:
2019-10-18 15:50:58
阅读次数:
161
题目描述 小P和小R在玩一款益智游戏。游戏在一个正权有向图上进行。 小P 控制的角色要从A 点走最短路到B 点,小R 控制的角色要从C 点走最短路到D 点。 一个玩家每回合可以有两种选择,移动到一个相邻节点或者休息一回合。 假如在某一时刻,小P 和小R 在相同的节点上,那么可以得到一次特殊奖励,但是 ...
分类:
编程语言 时间:
2019-10-11 20:03:49
阅读次数:
157
写在前面 学习算法的日子又到了~~ Idea? 提供以下几种方法 暴搜 输出 (是的,输出 ) 有算法的暴力 $Dijkstra$ $Dijkstra$的本质是贪心,复杂度为$O(n^2)$,堆优化后为$O((m+n) \log (m+n))$ $SPFA$ 学长说最好不要用,因为 它死了 $A^\ ...
堆优化的贪心,考虑种一棵树的最大收益,种了当前树两旁的树之后的收益为a[i-1]+a[i+1]-a[i] 用双向链表维护住左右关系,大根堆则可以“反悔”,维护另一个记录某个坑能不能种树的数组即可 代码: ...
分类:
其他好文 时间:
2019-09-22 12:41:56
阅读次数:
68