单源最短路算法汇总、分析、整理、实现与简单变形(C++ 语言描述)

数学建模图论实战:从Dijkstra到网络流的核心算法与应用解析 图论作为描述事物间关系的数学语言,是计算机科学和数学建模中的基础工具。其核心原理在于将实体抽象为节点,关系抽象为边,从而构建网络模型以分析复杂系统。这一技术价值在于能将交通规划、社交网络分析、资源分配等现实问题转化为可计算的图论问题。在应用场景上,最短路径算法(如Dijkstra、Floyd)用于优化路径,最小生成树用于构建成本最低的连接网络,而网络流模型(如最大流、最小费用流)则是解决资源分配与运输调度问题的强大“翻译器”。本文聚焦于数学建模竞赛,深入剖析如何将教材中的图论算法,如Dijkstra算法和网 阅读详情

一、单源最短路的定义及分类

1. 定义

简而言之,就是从一个点出发,到达图中所有其他的点所经过的最小边权之和。也就是说,假设我们从点 d d d 出发,要到一个图中的点 f f f ,则最短路定义为从 d d d 到 f f f 经过的最小边权和。具体如下图所示。
图1

2. 分类

令 N N N 为总点数, M M M 为总边数。

算法名称主要思想适用图时间复杂度注意事项
Dijkstra(迪杰斯特拉)枚举每个点,更新已知点到待确定的点的距离稠密图(点少边多)优化后 O ( N log ⁡ N ) O(N \log N) O(NlogN)不能处理负边权
Bellman-Ford(贝尔曼-福特)枚举每条边,对于边上的端点运用上一次的状态更新本次状态稀疏图(点多边少) O ( M 2 ) O(M^2) O(M2)可以处理 k k k 步最短路问题( k k k 为给定的常数)
SPFA类似于 BFS 的处理方法不专门应对 SPFA 算法缺陷的图(例如菊花图) O ( k M )   ( k ≤ N ) O(kM)\text{ }(k \le N) O(kM) (k≤N)注意看数据范围和图的类型

Dijkstra 的具体讲解请阅读这篇文章,本文着重讲解 Bellman-Ford 和 SPFA 的思路。

二、Bellman-Ford 算法的主要思想和算法实现

1. 主要思想

Bellman-Ford 算法会枚举图中的每一条边,将每条边的顶点信息更新。具体来说,如果记第 i i i 个点距离源点 k k k 的距离为 d i d_i di​ ,则 Bellman-Ford 算法会先初始化 d i = ∞ d_i = \infin di​=∞ , d k = 0 d_k = 0 dk​=0 ,并对于每个操作枚举与已知距离的点(定义为 d i ≠ ∞ d_i \neq \infin di​=∞),并计算能通过边扩展到的点的最短路(从当前点扩展)。
下面这张图将具体展示 Bellman-Ford 算法的思想,红色边为当前能扩展到的边,红色数字为当前最短路,绿色数字表示被更新的最短路,黑色数字表示顶点的序号或边权。
图2

2. 实现方法

初始化:标记两个数组 f i , g i → ∞ f_i,g_i \rightarrow \infin fi​,gi​→∞ ,其中 f i f_i fi​ 表示上一步状态, g i g_i gi​ 表示当前状态。( α \alpha α )
算法过程:进行 M M M 次操作。( β \beta β )
对于每一次操作,先把 f f f 复制一份到 g g g ,相当于在之后的更新中在 f f f 处存档 g g g 上一步的状态。每一次更新时,对于每一个满足 d i ≠ ∞ d_i \neq \infin di​=∞ 的 i i i ,扩展点 d i d_i di​ ,设点 i i i 与点 j j j 相连,则令点 j j j 的 d j d_j dj​ 值更新为 g j ← min ⁡ { g j , f i + W i , j → } g_j \leftarrow \min\{g_j,f_i+W_{\overrightarrow{i,j}}\} gj​←min{gj​,fi​+Wi,j ​​}( γ \gamma γ) 。

3. 关于上面 α \alpha α 、 β \beta β 引理的证明

证明 α \alpha α 的过程如下:
利用反证法求解。
∵ \because ∵ 只有一个数组 f f f ,
∴ \therefore ∴ 状态转移方程 γ \gamma γ 应该改为 f j ← min ⁡ { f j , f i + W i , j → } f_j \leftarrow \min\{f_j,f_i+W_{\overrightarrow{i,j}}\} fj​←min{fj​,fi​+Wi,j ​​} 。
∴ \therefore ∴ 这样,若 f i f_i fi​ 的值已经更改过, f j f_j fj​ 的值将会是第 2 2 2 步的结果,与其他元素不能同步。
∴ \therefore ∴ α \alpha α 得证。

证明 β \beta β 的过程如下:
如 2.1 中图所示,每一次都从原来的已知端点扩展到新的端点,即与边的数量有关,则如果一共有 M M M 条边,扩展次数将会达到 M M M 次。
⋆ \star ⋆ 注意,在这个位置,我们可以更改循环次数从而使问题转变为 K K K 步的最短路问题。具体见下文的代码。

注意,本部分内容仅代表个人做题经验,可能不严谨,读者若有意见,可以在评论区留言。

4. 代码

K K K 步的 Bellman-Ford 算法,如有需要可以更改为 N N N 步的 Bellman-Ford 算法。

#include <bits/stdc++.h>

using namespace std;

const int N = 1e4 + 10;

struct Node
{
    int x, y, z;
} e[N];

int n, m, k, f[N], g[N];

int main()
{
    cin >> n >> m >> k;
    for (int i = 1; i <= m; ++i)
    {
        cin >> e[i].x >> e[i].y >> e[i].z;
    }

    memset(f, 0x3f, sizeof(f));
    f[1] = 0;
    for (int i = 1; i <= k; ++i)
    {
        memcpy(g, f, sizeof(f));

        for (int j = 1; j <= m; ++j)
        {
            f[e[j].y] = min(f[e[j].y], g[e[j].x] + e[j].z);
        }
    }

    cout << f[n] << endl;

    return 0;
}

三、 SPFA 算法的主要思想、算法实现和注意事项

1. 主要思想

如前文所述,SPFA 算法与 BFS 算法的思想比较接近。在 SPFA 算法的进行过程中,记 d i d_i di​ 表示到第 i i i 个点的最短路。对于每次操作,枚举当前队列中已经存在的点,以边为依据扩展当前所有已知的点,直到队列为空为止。记当前点为 i i i ,待扩展的点为 j j j ,则状态转移方程可以表示为 d j = min ⁡ { d j , d i + W i , j → } d_j=\min\{d_j,d_i+W_{\overrightarrow {i,j}}\} dj​=min{dj​,di​+Wi,j ​​} 。
如图 2.1 所示,方法大致与 Bellman-Ford 相同,但每次不会枚举所有的边,而是枚举队列里面的边。

2. 算法实现

初始化:记录一个数组 d i = ∞   ( i ∈ [ 2 , N ] ) d_i=\infin\text{ }(i\in[2,N]) di​=∞ (i∈[2,N]) ,初始化一个队列 queue< int > q 。
算法过程:开始的时候,先使源点入队,然后记录每个入队的点的位置。
如果当前点 i i i 使扩展点 j j j 的 d j d_j dj​ 值发生变化,则若队列中不存在点 j j j ,将点 j j j 入队并统计点 j j j 的入队次数 c j c_j cj​(后文引理 θ \theta θ 基于此数据完成)。如果 c j ≥ N c_j \ge N cj​≥N ,则判定此图中一定存在负环,故不存在最短路( θ \theta θ) 。

⋆ \star ⋆ 3. 引理 θ \theta θ 的证明

证明:
∵ \because ∵ 如果图中不存在一个环,假设我们有最坏情况(菊花图),有 N − 1 N-1 N−1 个点指向中心的点,
∴ \therefore ∴ 最多的点需要入队 N − 1 N-1 N−1 次。
∵ \because ∵ 如果该图中存在一个正环,即环内边权相加为正,则如果绕行圈数增加,最短路增加,
∴ \therefore ∴ 正环中的点不会入队超过 N − 1 N-1 N−1 次。
∵ \because ∵ 负环中的点随着绕行圈数的加大而有更优的最短路,
∴ \therefore ∴ 入队次数 ≥ N \ge N ≥N
∴ \therefore ∴ θ \theta θ 得证。

4. 代码

判断负环+最短路

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const int N = 1e3 + 10;

struct Node
{
    ll to, wi;
};

ll n, m, s, v[N], c[N], d[N];
vector<Node> e[N];
queue<ll> q;

int spfa(int x, int y)
{
    memset(d, 0x3f, sizeof(d));
    d[s] = 0;
    c[s] = 1;

    q.empty();
    for (int i = x; i <= y; ++i)
    {
        v[i] = 1;
        q.push(i);
    }

    while (!q.empty())
    {
        ll x = q.front();
        q.pop();
        v[x] = 0;

        for (Node y : e[x])
        {
            if (d[y.to] > d[x] + y.wi)
            {
                d[y.to] = d[x] + y.wi;

                if (!v[y.to])
                {
                    v[y.to] = 1;
                    c[y.to] = c[x] + 1;
                    
                    if (c[y.to] >= n)
                    {
                        return -1;
                    }

                    q.push(y.to);
                }
            }
        }
    }

    return 1;
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    cin >> n >> m >> s;
    for (ll i = 1, a, b, c; i <= m; ++i)
    {
        cin >> a >> b >> c;

        e[a].push_back( Node{b, c} );
    }

    if (spfa(1, n) == -1) 
    {
        cout << -1 << endl;
        return 0;
    }

    spfa(s, s);

    for (ll i = 1; i <= n; ++i)
    {
        if (d[i] > 1e9) cout << "NoPath" << endl;
        else cout << d[i] << endl;
    }

    return 0;
}
蓝桥杯算法竞赛:高效模板库构建与核心代码实战解析 在算法竞赛和编程实践中,掌握核心数据结构和算法模板是提升解题效率与代码可靠性的关键。从原理上讲,模板是对经典算法逻辑的标准化封装,旨在减少重复实现错误,统一代码风格。其技术价值在于,它能帮助选手将精力聚焦于问题建模而非底层细节,显著提升编码速度与比赛稳定性。在应用场景上,无论是处理图论中的最短路径(如Dijkstra算法),还是应对动态规划中的背包问题,一套经过实战检验的模板库都至关重要。本文以蓝桥杯竞赛为背景,深入解析了**整数二分查找**的边界处理艺术与**并查集**的路径压缩优化等高频模板,探讨如何构 阅读详情

相关推荐

联想2025秋招算法笔试真题解析:KMP、并查集与堆排序考点全盘点

在技术岗位求职中,数据结构与算法是笔试与面试的核心门槛。理解字符串匹配、集合连通性维护以及排序的底层原理,不仅是解决编程题的基础,更是工程实践中优化系统性能的关键能力。KMP算法通过next数组避免重复匹配,并查集以路径压缩和按秩合并高效处理动态连通性问题,堆排序则利用完全二叉树结构实现O(n log n)的稳定排序。这些算法广泛应用于文本检索、网络拓扑检测、任务调度等真实业务场景,也是联想等硬件与智能制造企业校招笔试的高频考点。掌握算法思想、代码模板与复杂度分析方法,能够帮助求职者从容应对从机考到面试手撕

weixin_27061475的博客 311

最短路问题(用C/C++实现)

此处备份的原因:在更新这些点的距离时可能会发生串联,即随着一些点的变化,另一些点会随之改变距离,所以要进行备份保证每个点的距离都是上一次的结果。优化了dist[b] = min(dist[b], dist[a] + w)这个式子,当dist[a]更新后变小了,dist[b]才可能会变小。用t更新其他所有点的距离,即看t节点的出边连接的节点到起点的距离能否使用t来更新,dist[x] > dist[t] + w.

weixin_74324928的博客 1231

单源最短路径问题C++代码

经典算法单源最短路径经典算法单源最短路径经典算法单源最短路径经典算法单源最短路径经典算法单源最短路径

C++图论 最短路问题总结

C++ 图论关于最短路问题的总结,包括Dijkstra,Bellman_ford,spfa算法等。

m0_62946761的博客 9451

二、基于C语言的JPEG解码代码详解

// JPEG解码 // 输入JPEG后输出Bitmap #include <stdio.h> #include <stdlib.h> #pragma warning(disable : 4996) unsigned int BuffIndex; // JPEG数据的位置 unsigned int BuffSize; // JPEG数据的大小 unsigned int BuffX; // 图像的横向尺寸 unsigned int BuffY; //

m0_37633745的博客 4452

从零开始:用Neo4j构建你的第一个知识图谱(附完整代码示例)

本文提供了一份从零开始的Neo4j知识图谱构建实战指南。通过一个“经典科幻电影宇宙”的具体案例,手把手教你安装环境、设计图谱模式,并使用Cypher查询语言完成节点与关系的创建、数据查询及可视化,帮助你快速掌握自下而上构建知识图谱的核心技能。

weixin_29053073的博客 471

C++图笔记(二)最短路

本文介绍了c++图的一些算法

weixin_70468627的博客 1754

无人机芯片模块技术要点分析

恶劣环境下信号稳定性:无人机在恶劣环境下工作时,遥感系统采集的信号往往很不稳定,视频信号处理芯片需要具备强抗干扰能力,能辨别脉冲脉宽为50ns以上、幅度为0V~4.5V的输入信号。这种架构能兼顾强大的运算能力和灵活的接口控制。芯片小型化:麻省理工学院的研究人员已设计出仅20平方毫米的微型芯片,可处理无人机飞行所需的惯性数据和相机图像,为微型无人机的发展奠定了基础。光子集成芯片(PIC) :研究显示,与电子芯片相比,光子计算芯片在延迟、计算容量和能效上都有数量级的提升,有望解决当前无人机系统的计算瓶颈。

YUNZHUO666的博客 1404

【算法基础篇】(三十七)图论基础之单源最短路:从原理到实战,4 大算法彻底吃透!

本文系统介绍了4种经典单源最短路算法及其应用场景。Dijkstra算法(常规版和堆优化版)适用于非负权图,时间复杂度分别为O(n²)和O(mlogn)。Bellman-Ford算法通过n-1轮松弛处理负权边,可检测负环,复杂度O(nm)。SPFA作为其优化版本,平均复杂度O(km)。文章详细分析了各算法的核心思想、代码实现和适用条件,并提供了洛谷模板题解答。最后通过邮递员送信和最短路计数两个变形问题,展示了算法的实际应用。针对不同场景,给出了选择算法的三步决策法:判断负权边→检测负环需求→考虑数据规模。

2301_79248256的博客 1305

ros2 humble cartographer 2D激光雷达建图

Cartographer是一个支持多平台和传感器配置的SLAM的系统。 本文主要讲述在ros2 humble系统上cartographer的安装方法,以及如何配置参数实现自己的ros2 bag包的离线建图。

weixin_43087302的博客 6938

一文详解数据仓库、数据湖、湖仓一体和数据网格

本文对数据仓库、数据湖、湖仓一体、数据网格四个技术概念进行了辨析,并对它们的优势和局限给出了对比介绍。

oOBubbleX的博客 2593

C++:【算法】最短路问题

在图论问题中,最短路算法是一个典型且很常用的算法。面对不同的情况,要选择不同的算法。本文。下面给出一个思维导图:算法并不难,问题的关键在于建图,这个需要做题积累经验。下面只给出算法的基本实现,还需各位同学多多做题。

qq_73176808的博客 1411

基于AI的智能开发环境—Trae在Web开发中的应用实战与性能评估【Trae项目实战】

Trae 是一款与 AI 深度集成的开发工具,提供智能问答、代码自动补全和基于 Agent 的 AI 自动编程能力,极大提升开发效率。它具备完备的 IDE 功能,如代码编写、项目管理和源代码管理等,同时还具备强大的 AI 助手,能够提供智能问答、实时代码建议、代码片段生成等服务。开发者可以通过自然语言与 AI 协作,从 0 到 1 开发项目,AI 会根据需求自动生成代码或创建文件。

一键难忘的博客 3万+

最短路常用模板整理

单源最短路,Dijkstra算法,适用于无负权边情况,简单时间复杂度O(n^2),堆优化时间复杂度为O((m+n)log n)、变形也可求最短路径最大权值和最长路径最小权值 int cost[MAX_V][MAX_V]; //图的邻接矩阵 int d[MAX_V];//顶点s(起点)到各点的最短距离 bool used[MAX_V];//是否已经访问过 int V;//顶点数 int prev[MAX_V];//前驱顶点 void Dijkstra(int s){ fill(d,d+V,INF);

weixin_43945141的博客 323

在 SAP HANA 里为视图创建 Analytic Privilege,真正把同一份数据按角色切开

摘要:本文介绍了SAP HANA中基于业务角色的动态数据权限控制方法。通过Analytic Privilege技术,可以在同一视图上为不同角色设置不同的数据访问范围,实现行级安全控制。核心机制包括:1) 创建带有STRUCTURED PRIVILEGE CHECK的视图;2) 建立授权对象和用户映射表;3) 开发条件提供过程动态生成过滤条件;4) 创建结构化权限对象绑定条件提供器。这种设计使权限规则与业务数据解耦,便于维护变更,适合销售区域、财务数据等多角色访问控制场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2390

【fpdlink显示】DS90UB948关于941连接948 GPIO调试问题

1. 前言 使用一个941连接2 948显示: 941的GPIO0/1/2/3到前948的GPIO0/1/2/3和941的D_GPIO0/1/2/3到948的GPIO0/1/2/3。 设置gpio3输出,则941的D_GPIO3设置高,而948的gpio3设置不高; 但设置gpio3输入后,看到941的D_GPIO3跟随948的gpio3变化。 2. 原理图连接 3. 测试代码 static int du90ub941_enable_port(struct goodix_ts_d

jzwjzw19900922的博客 2555

Dijkstra与Floyd算法:从原理到实战,掌握最短路径核心算法

最短路径算法是图论中的基础概念,用于在带权图中寻找两点间成本最低的路径。其核心原理在于通过贪心策略或动态规划,系统性地探索和更新顶点间的距离。该技术具有极高的工程价值,是实现高效路径规划与网络优化的基石。在应用场景上,它广泛服务于地图导航、物流配送、网络路由及社交网络分析等领域。本文聚焦于Dijkstra和Floyd这两位“重量级选手”,深入解析其针对单源与全源最短路径问题的不同解决方案、实现细节及选型指南,帮助读者在工程实践中精准应用。

weixin_30776545的博客 546

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2022小米秋招算法笔试题型拆解与高效备考策略

算法与数据结构是互联网公司校招笔试的核心筛选工具,其本质是通过有限时间内的编程解题,考察候选人的抽象建模、逻辑严谨性与代码执行力。从最基本的排序、二分查找,到KMP字符串匹配、动态规划状态转移、贪心策略证明,再到Dijkstra最短路、拓扑排序、并查集等图论模板,每一类算法背后都对应着明确的工程思想与复杂度优化原则。理解这些算法的原理与适用边界,不仅有助于解决在线评测系统中的难题,更能为应对大规模数据处理场景提供坚实的思维基础。无论是准备秋招算法笔试,还是提升日常刷题效率,掌握高频考点的推导过程和代码细节都

weixin_28683689的博客 328

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数据结构学习指南:从线性表到图与哈希表的体系构建与实战应用

数据结构是计算机科学的核心基础,它研究数据的组织、存储与操作方式,其设计哲学深刻影响着算法效率与程序性能。从逻辑结构到物理存储,数据结构的核心原理在于根据操作需求(如查找、插入、删除)在时间与空间复杂度之间进行权衡。掌握数据结构的技术价值在于能够为具体问题选择或设计最合适的“数据容器”,从而高效地解决现实中的计算任务,例如实现快速检索、管理任务队列或建模复杂网络关系。在实际应用场景中,线性表(数组与链表)是构建更复杂结构的地基,栈与队列处理具有特定顺序的问题,树结构(如二叉搜索树、堆)支持高效查找与排序,图

weixin_30527323的博客 571

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

王道408数据结构强化班深度解析:从知识体系到解题实战

数据结构是计算机科学的核心基础,它研究数据在计算机中的组织、存储和操作方式,其核心价值在于通过高效的数据组织来优化算法的执行效率。理解数据结构的原理,如线性表、树、图等逻辑结构及其对应的存储实现,是进行复杂软件系统设计与性能优化的基石。在工程实践中,掌握数据结构与算法思想(如分治、动态规划)的紧密结合,能够有效解决海量数据处理、高性能计算等实际场景中的性能瓶颈问题。本文聚焦于备受关注的【王道考研】强化班课程,该课程正是通过【专题串讲】和【真题精讲】的方式,系统性地帮助学习者构建知识网络,打通从原理理解到解决

weixin_34214500的博客 334

2017滴滴秋招算法岗笔试真题解析:高频考点与答题套路

算法岗笔试与纯竞赛刷题不同,更看重将业务问题转化为计算模型的能力。数据结构与算法、机器学习基础、工程思维是考核三大支柱,其中KMP字符串匹配、常见排序算法、贪心与动态规划、概率统计及逻辑回归、SVM等经典模型原理,都是各厂笔试的高频考点。从技术本质出发,KMP通过next数组记录已匹配信息加速字符串匹配,排序算法需明确时间空间复杂度与稳定性差异,而逻辑回归的交叉熵损失、SVM的核函数映射、K-means的收敛特性则直接检验模型理解深度。理解这些基础原理,有助于在实际场景中应对地图路线规划、订单派单、供需预测

weixin_33811539的博客 360

网易2016实习研发工程师笔试:选择题考点全解析

在互联网技术岗位招聘中,C/C++内存管理、数据结构、操作系统与计算机网络等基础知识,是衡量候选人技术密度的重要标尺。理解sizeof与strlen的差异、结构体字节对齐规则、进程状态与死锁条件、TCP三次握手流程,不仅是应对笔试的关键,更直接影响工程实践中的代码质量与系统可靠性。从哈希表负载因子到排序算法稳定性,从页面置换算法到条件概率计算,每一类经典考点都对应着真实场景中的设计决策。通过梳理2016年网易实习研发工程师选择题的考点分布与解题思路,帮助求职者建立完整的知识对照表,掌握识别干扰项的方法,从而

weixin_34268753的博客 470

新疆大学计算机考研828数据结构:考纲解读与高效备考全攻略

数据结构是计算机科学的核心基础,它研究数据的组织、存储和运算方式,是算法设计与程序优化的基石。其核心原理在于通过逻辑结构与物理存储结构的映射,实现数据的高效管理。掌握数据结构对于提升程序性能、解决复杂工程问题具有不可替代的技术价值,广泛应用于数据库索引、编译器设计、网络路由和人工智能等领域。本文聚焦新疆大学计算机考研自主命题科目“828数据结构与程序设计”,深入解读其与408统考的区别,并基于历年真题分析,系统梳理线性表、树、图、查找排序等核心考点。文章结合备考实战,提供从基础夯实到冲刺复盘的四阶段科学规划

weixin_30402343的博客 535

蓝桥杯真题解析:多源BFS求解岛屿淹没问题

Flood Fill(洪水填充)是图论中处理连通区域扩散的经典算法范式,其核心在于模拟状态从起点按层向外传播的过程。该技术基于广度优先搜索(BFS)实现层级遍历,天然支持多源并发扩散、距离计算与状态标记,广泛应用于岛屿识别、图像填充、感染传播等场景。在算法竞赛中,尤其强调对起点集合的准确建模(如所有边界海洋点)、四连通邻域规则、三态标记(原始海洋/陆地/新生水域)及终止条件判定。本文以蓝桥杯国赛《全球变暖》真题为载体,深入剖析多源BFS如何高效解决二维网格中的连通淹没问题,兼顾时间复杂度O(N×M)与工程鲁

weixin_30897079的博客 371

单源最短路

1.单源最短路 1.1所有边权值都为正 1.1.1 朴素Dijkstra o(n^2)用于边数多 1.1.2 堆优化Dijkstra o(mlogn)用于点数多 1.2存在边权值为负 1.2.1 Bellman_Ford o(nm) 1.2.2 SPFA o(m)~o(nm)优化版的bellman 2.多源汇最短路 2.1 Floyd o(n^3) 1.朴素dijkstrao(n^2) int g[...

weixin_50533561的博客 385

单源最短路径问题c++实现(贪心算法)

单源最短路径算法c++实现(贪心算法)

haust_允谦的博客 6506
上一篇: “24点”计算问题的算法分析和C++语言实现
下一篇: 贪心算法的应用实例:子问题的局部最优解可推导出全局最优解
Aobing_peterJr
博客等级 码龄2年 128粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值