摘要: $A^*$ 算法的模板题。 题意 给定一张 $n$ 个点 $m$ 条边的有向图,求从起点 $a$ 到终点 $b$ 的第 $K$ 短路的路径(每个点只能经过一次),当路径长度相同时按字典序排序。 前置芝士 $A^$ 算法实质上是带有估价函数的优先队列 BFS,其中 Dijkstra 算法就是一种估价函 阅读全文
posted @ 2021-06-23 20:33 曙诚 阅读(243) 评论(0) 推荐(0)
摘要: 题意 给定一个 $n$ 个顶点 $m$ 条边的带权无向图,多次询问在两个点之间所有可能的路径中的最大值,最小为多少。 思路 显然,可以先在用 kruskal 算法在原图上构造一棵最小生成树。可以证明,两点之间的路径在这棵树上时,边权的最大值最小。 而对于找到这个最大值有两种做法,一种是在求最近公共祖 阅读全文
posted @ 2021-06-23 20:31 曙诚 阅读(165) 评论(0) 推荐(0)
摘要: 定义 可持久化数据结构,主要解决的问题是查询数据结构的所有历史版本。 如果每对数据结构修改一次,就暴力记录新的数据结构,那么时间和空间复杂度都会增加 $O(m)$ 。显然无法接受。 而可持久化数据结构的核心思想是记录当前版本与上个版本不一样的地方。这样一来,数据结构的时间复杂度没有增加,空间复杂度仅 阅读全文
posted @ 2021-06-23 20:21 曙诚 阅读(133) 评论(0) 推荐(0)