首页 > 其他分享 >为什么会变成这样呢? #5(常数边权最短路)

为什么会变成这样呢? #5(常数边权最短路)

时间:2023-08-19 13:11:38浏览次数:29  
标签:松弛 队列 边权 复杂度 常数 短路

给定一个 \(n\) 个点 \(m\) 条边的有边权无向图,其中边权 \(w_i\in \{0,1,\dots,k-1\}\),求点 \(1\) 到各个点的最短路。

期望复杂度:\(O((n+m)k)\)

0k最短路

在经典的 Dijkstra 算法中,我们使用一个优先队列来维护松弛队列,这样的时间复杂度为 \(O((n+m)\log k)\)。现在我们考虑为每种边权开一个松弛队列(一共 \(k\) 个松弛队列)。对于某个特定的边权 \(w\),由于松弛后的距离都是 \(\text{dis}[u]+w\) 的形式,所以不需要用优先队列,直接保留原来取出顶点的顺序就好。每次循环时枚举所有 \(k\) 个队列找最小的队列即可。

例题:

标签:松弛,队列,边权,复杂度,常数,短路
From: https://www.cnblogs.com/szdytom/p/how-did-we-get-here-5.html

相关文章

  • 最短路总结
    最短路径目录最短路径\(\operatorname{Floyd}\)(全源最短路)\(\operatorname{Dijkstra}\)(非负权图单源最短路)\(\operatorname{Bellman-Ford}\)(带负权单源最短路)\(\operatorname{Johnson}\)(全源最短路)总结参考文献:\(\operatorname{Floyd}\)(全源最短路)我们定义一个数组\(f_{k,x,y......
  • 单源最短路问题
    Bellman-Ford算法例题【模板】负环原理Bellman-Ford算法的原理是重复遍历\(n-1\)遍所有的边,对其进行松弛操作。如果源点到终点的距离小于源点到起点与这条边的权值之和,那么源点到终点的距离就用这个更小的距离来替换。核心代码:if(dis[e[j].from]+e[j].value<......
  • 多源最短路问题
    Floyd算法例题【模板】Floyd算法原理Floyd算法的思想是动态规划。维护一个数组dis[k][u][v],表示从点\(u\)到点\(v\)的最短路径,且中间经过的点(不包括\(u\),\(v\))的序号最大为\(k\)。状态转移方程:\(f(k,u,v)=min{(f(k-1,u,v),f(k-1,u,k)+f(k-1,k,v))}\)为......
  • AcWing 854. Floyd求最短路
    题目给定一个$n$个点$m$条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定$k$个询问,每个询问包含两个整数$x$和$y$,表示查询从点$x$到点$y$的最短距离,如果路径不存在,则输出impossible。数据保证图中不存在负权回路。输入格式第一行包含三个整数$n,m,k......
  • 最短路&差分约束笔记
    最短路径基础算法单源最短路径单元最短路径指的是在一张联通图中,起点\(s\)到其他所有点的最短路径。计算单元最短路的常见算法有:\(spfa\),\(dijkstra\)。若图带负边权(注意,此时只能是有向图,无向图负边权类似负环),则必须使用\(spfa\),时间复杂度\(O(kE)\),\(E\)表示边的数量;最......
  • 浅谈关于电气线路短路引起的电气火灾的原因
    未晓妃安科瑞电气股份有限公司上海嘉定201801摘要:我国人口众多,同时对用电需求也非常多。我们日常生活需要电力来照亮我们的家园并为工业供电。它可以是建设性的,也可以是破坏性的,这取决于处理它的谨慎程度。稍有不慎,就会引发火灾,造成经济损失和惨痛的伤害。电气火灾中*危险的故障......
  • AcWing 851. spfa求最短路
    题目给定一个$n$个点$m$条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出$1$号点到$n$号点的最短距离,如果无法从$1$号点走到$n$号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数$n$和$m$。接下来$m$行每行包含三个整......
  • 考研数据结构——每日一题[Dijkstra求最短路]
    849.Dijkstra求最短路I给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出−1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点......
  • 调和级数发散率证明|欧拉常数|ln n+gamma+varepsilon_k证明|sigma(1/i)
    最近在做一个练习,然后看到了调和级数这个东西,说实话这东西谁能在考场上想到,平日还是要多积累。开门见山但是我们今天只证这个东西:\[\sum^{n}_{i=1}\frac{1}{n}=\lnn+\gamma+\varepsilon_n\]其中\(\gamma\)gamma是欧拉常数(约等于0.57721566490153286060651209,关于欧......
  • 单源次短路算法 学习笔记
    次短路:顾名思义就是一张图中第二短的路径。分类:1.边不可重复经过的次短路问题。边可重复经过的次短路问题。2.严格次短路(次短路长度必须大于最短路长度)。非严格次短路(次短路长度可以大于或等于最短路长度)。一、边不可重复经过的次短路问题例题:LuoguP1491集合位置题目分析......