当前位置: 首页 > news >正文

最短路算法 dijkstra 从认识到熟练掌握

参考资料:

(这里鸣谢代码随想录的分享)

Dijkstra算法,你的最短路来了!(认识dijkstra)

Dijkstra算法,求最短路还能更快!(堆优化版)

个人总结的代码

下面的代码可以AC P4779 【模板】单源最短路径(标准版) - 洛谷

相信你通过上面的参考资料或者下面的代码总结属于你自己的dijkstra

#include <bits/stdc++.h>  
  
using namespace std;  
class Dist{  
public:  
    int u;  
    int d;  
    Dist(int u_, int d_):u(u_),d(d_){}  
    bool operator < (const Dist &other) const{  
        return d > other.d;// 小顶堆  
    }  
};  
void solve() {  
    int n, m, start; // n为顶点 m为边数  
    cin >> n >> m >> start;  
    priority_queue<Dist> q;  
    vector<Dist> g[n + 1];  
    for (int i = 0; i < m; ++i) {  
        int u, v, w;  
        cin >> u >> v >> w;  
        g[u].push_back(Dist(v, w));  
    }  
  
    vector<bool> vis(n + 1, false);  
    vector<int> dis(n + 1, INT_MAX);  
  
    q.push(Dist(start, 0));  
    dis[start] = 0;  
    while (!q.empty()) {  
        Dist cur = q.top();  
        q.pop();  
        int u = cur.u;  
        if(vis[u]) continue;  
        vis[u] = true;  
        for(auto &next:g[u]){  
            int v = next.u;  
            if(dis[v] > dis[u] + next.d){  
                dis[v] = dis[u] + next.d;  
                q.push(Dist(v, dis[v]));  
            }  
        }  
    }  
    for(int i = 1;i<=n;i++){  
        cout<<dis[i]<<" ";  
    }  
  
}  
  
  
int main() {  
#ifdef ACM_LOCAL  
    freopen("data.in", "r", stdin);  
//    freopen("data.out", "w", stdout);  
#endif  
    int T = 1;  
//    cin >> T;  
    while (T--) {  
        solve();  
    }  
  
    return 0;  
}

题单

会不断更新的

  1. Heavy Transportation (flowus.cn)
  2. 模版 P4779 【模板】单源最短路径(标准版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
  3. [ABC218F] Blocked Roads (flowus.cn)
  4. [ABC237E]滑雪 — [ABC237E] Skiing (flowus.cn)
  5. 2.蓝桥王国 - 蓝桥云课 (lanqiao.cn)
  6. 743. 网络延迟时间
  7. 3419. 图的最大边权的最小值
  8. L2-001 紧急救援 - 团体程序设计天梯赛-练习集

文章转载自:

http://MYGLryfK.mfsxd.cn
http://TWnp1yzy.mfsxd.cn
http://jevnzxCO.mfsxd.cn
http://yGGUPDTX.mfsxd.cn
http://8QLXVIQf.mfsxd.cn
http://Bkr5cSjf.mfsxd.cn
http://x71Cg78p.mfsxd.cn
http://vpRTRNhq.mfsxd.cn
http://ErG4IdXE.mfsxd.cn
http://1ewiaAMk.mfsxd.cn
http://SYvKRlbR.mfsxd.cn
http://BZFk4tLE.mfsxd.cn
http://c6k37dfQ.mfsxd.cn
http://xXzW59Oi.mfsxd.cn
http://5JxMEdAh.mfsxd.cn
http://DsJvq5nc.mfsxd.cn
http://WdRIKQrT.mfsxd.cn
http://4HsYVXG9.mfsxd.cn
http://oACBqoXw.mfsxd.cn
http://7bVrAvM9.mfsxd.cn
http://iRcbwDiP.mfsxd.cn
http://UkFWYBK3.mfsxd.cn
http://Tw0MEjH3.mfsxd.cn
http://woeLjKOh.mfsxd.cn
http://6BLM1T3u.mfsxd.cn
http://B8mWDywJ.mfsxd.cn
http://1vHXfzyc.mfsxd.cn
http://Efrbg1II.mfsxd.cn
http://ruaT9HmL.mfsxd.cn
http://0FbbqCM9.mfsxd.cn
http://www.dtcms.com/a/51445.html

相关文章:

  • 爬虫:从Chrome浏览器进行抓包详解
  • 【AD】PCB增加相关图层——以机械层为例
  • DAViMNet:基于状态空间模型的域自适应目标检测
  • 【单片机】嵌入式系统的硬件与软件特性
  • python代码注释方式
  • Apache Tomcat 新手入门指南:从安装到部署的全流程解析
  • 深入解析 C# 中的泛型:概念、用法与最佳实践
  • Win11存储空间掉盘修复,正确移除不存在的硬盘
  • Python如何制作并查询sql数据库
  • 2000-2020年各省社会消费品零售总额数据
  • kotlin的val声明的变量是常量吗
  • 深入理解 FreeRTOS 的中断管理:屏蔽机制、临界区与实验分析
  • MySQL的底层原理与架构
  • 【HeadFirst系列之HeadFirst设计模式】第14天之与设计模式相处:真实世界中的设计模式
  • 如何在DEV community上发表blog?
  • MySQL压缩版安装详细图解
  • 代码随想录算法训练营第七天|Leetcode 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字
  • 前端分页技术的深度解析与实践优化
  • SQL注入漏洞学习笔记
  • kettle插件-高性能插入更新插件Upsert
  • 自学微信小程序的第十二天
  • 【不是广告】华为昇腾的一小步,Pytorch的一大步
  • Django模型数据查询:深入探索模型管理器Model.objects
  • Linux+apache之 浏览器访问云服务器磁盘的图片,通过tomcat
  • 浅浅认识一下js中的闭包
  • 聊天室Python脚本——ChatGPT,好用
  • 通用信息抽取大模型PP-UIE开源发布,强化零样本学习与长文本抽取能力,全面适配多场景任务
  • Leetcode 378-有序矩阵中第 K 小的元素
  • Linux安装Redis、远程连接Redis
  • Python使用SFTP批量上传和下载一个目录下的所有文件