AcWing 850. Dijkstra求最短路 II(堆优化版最短路)

ResNet改进(7):添加 SK注意力机制 实现 SK 注意力机制。 阅读详情

给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。

请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。

输入格式

第一行包含整数n和m。

接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。

输出格式

输出一个整数,表示1号点到n号点的最短距离。

如果路径不存在,则输出-1。

数据范围

1≤n,m≤1.5×1051≤n,m≤1.5×105,
图中涉及边长均不小于0,且不超过10000。

输入样例:

3 3
1 2 2
2 3 1
1 3 4

输出样例:

3

import java.io.*;
import java.lang.*;
import java.util.*;

class Main{
    static int n = 0, m = 0, N = 1000010;
    static PriorityQueue<int[]> q = new PriorityQueue<>((a,b)->{return a[1] - b[1];});
    static int[] dist = new int[N];
    static boolean[] f = new boolean[N];
    static int[] h = new int[N], ne = new int[N], e = new int[N], w = new int[N];
    static int idx = 1;
    static int Dijkstra(){//类似广搜的过程
        Arrays.fill(dist, 0x3f3f3f3f);
        dist[1] = 0;//初始化第一个点到自身的距离
        q.offer(new int[]{1, 0});
        while(q.size() != 0){
            int[] a = q.poll();
            int t = a[0], distance = a[1];
            if(f[t])continue;
            f[t] = true;
            for(int i = h[t]; i != -1; i = ne[i]){
               int j = e[i];
               if(dist[j] > distance + w[i]){
                   dist[j] = distance + w[i];
                   q.offer(new int[]{j, dist[j]});
               }
            }
        }
        if(dist[n] != 0x3f3f3f3f)return dist[n];
        return -1;
    }
    static void add(int a, int b, int c){
        e[idx] = b; w[idx] = c;ne[idx] = h[a]; h[a] = idx++;
    }
    public static void main(String[] args)throws Exception{
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String[] params = buf.readLine().split(" ");
        n = Integer.valueOf(params[0]);
        m = Integer.valueOf(params[1]);
        Arrays.fill(h, -1);
        for(int i = 1; i <= m; ++i){
            String[] info = buf.readLine().split(" ");
            int a = Integer.valueOf(info[0]);
            int b = Integer.valueOf(info[1]);
            int c = Integer.valueOf(info[2]);
            add(a, b, c);
        }
        System.out.print(Dijkstra());
      
    }
}

 

 

 

ROSTCM6+Gephi的网络语义分析详细教程(附案例实战) ROSTCM6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析。Gephi是一款开源免费跨平台基于JVM的复杂网络分析软件,可用于各种图形和网络的可视化和探索,是最受欢迎的网络可视化软件之一。 阅读详情

相关推荐

浅谈python反序列化漏洞

0x01 python序列化与反序列化 Python 的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的时候再将字节流转化回原始的对象的一个过程。python中的序列化操作是通过pickle模块,而该模块主要包含l dumps将dict转化为str格式,loads将str格式转化为dict格式。 dump和load与文件操作结合起来, pickle.dump(obj, f...

Lethe's Blog 3220

Acwing_850(Dijkstra求最短路 II)

因此可以采用堆优化的Dijkstra算法,需要注意的是采用vector开辟邻接矩阵会Segmentation Fault,因此可以通过手搓单链表建立邻接矩阵。

a131529的博客 583

基于FPGA的图像预处理系统(图)

 北京机械工业学院 韩娟娟 邓文怡 娄小平 由于获取图像的工具或手段的影响,使获取图像无法完全体现原始图像的全部信息。因此,对图像进行预处理就显得非常重要。预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理来说比较重要的图像特征。通常根据预处理目的的不同,把预处理技术归为图像增强技术和图像分割技术两类。图像对比度处理是空间域图像增强的一种方法。由于图像灰度范围狭窄会使

lyzhangxianglove的专栏 1780

AcWing 850. Dijkstra求最短路 II

图的邻接表存储、单源最短路径、堆优化版Dijkstra算法

cwtnice的博客 877

飞书云文档API操作详细介绍

开通云文档API、python程序调用飞书api、飞书获取app_id和app_secret、

Brother_ning的博客 1万+

FFmpeg音频转换避坑实录:为什么VOS的REC转MP3比WAV转MP3体积小一半?

本文深入解析了FFmpeg在VOS系统REC格式音频转换中的优化技巧,揭示了REC转MP3比WAV转MP3体积小一半的原因。通过分析REC格式的压缩特性、转码参数陷阱及FFmpeg调优方法,帮助开发者实现高效音频转换,显著降低存储成本。

weixin_30752699的博客 526

C++ 最短路 堆优化版的Dijkstra算法

C++ 最短路 堆优化版的Dijkstra算法

fucheng的博客 1131

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 221

AcWing(850)-----Dijkstra求最短路 II

题目链接 模板题 1. 题中m,n的数据范围都为100000,所以用朴素dijkstra行不通,需要用优先队列优化 ——————————————————————————————————————————————————————————————— 邻接矩阵实现的dijkstra算法的复杂度是O(V²)。使用邻接表的话,更新最短距离只需要访问每条边一次即可,因此这部分的复杂度是O(E).但是每次要枚举所...

没有期待的日子反而会顺顺利利 298

置顶必读(1) |《YOLOv8实战:从入门到深度优化》专栏导读,带你一文了解本专栏!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 14万+

基于 Simulink 的三相四线制整流器在三相不平衡负载下的中点电位平衡控制实战教程。

本文介绍了三相四线制整流器在不平衡负载下的中点电位平衡控制方法。首先分析了中点电位漂移的物理机理和控制策略(零序电压注入)。接着详细讲解了Simulink建模步骤:搭建三相四线制主电路、设计平衡控制算法、实现PWM调制。通过对比有无平衡控制的仿真结果,验证了控制方法的有效性。最后提供了工程建议:零序注入需限幅、考虑中性线寄生电感影响、采用稳健的PI参数。该方案能有效抑制中点电位波动,保障三电平系统在不平衡工况下的稳定运行。

MHD0815的博客 60

AcWing 850. Dijkstra求最短路 II(堆优化dijkstra)

题目链接 : 点击查看 题目描述 : 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。 输入输出格式 : 输入 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。 输出 输出一个整数,表示 1 号点到 n 号点的最短距离。 如果路径不存在,则输出 −1。 输入输出样例 : 输入 3 3 1 2

在森林里麋了鹿 804

AI 赋能 DBA:如何用 DeepSeek 等大模型简化数据库管理工作

数据库管理员(DBA)的工作涉及 SQL 优化、故障排查、性能监控等复杂任务。而 DeepSeek、ChatGPT 等大模型可以大幅减少重复劳动,提高 DBA 的工作效率。:某电商平台的订单查询 SQL 执行缓慢(平均 5s),DBA 需要优化。:DBA 需要监控 MySQL 的慢查询,但不想手动写脚本。:某金融系统频繁出现数据库死锁,DBA 需要快速定位原因。:大模型可分析 SQL 执行计划,推荐索引优化方案。:用日常语言查询数据库,无需写复杂 SQL。:一键生成监控、备份、数据迁移脚本。

专注于编程、AI、人工智能等多个领域内容研究和分析 565

[AcWing]850. Dijkstra求最短路 II(C++实现)堆优化版Dijkstra算法求最短路模板题

[AcWing]850. Dijkstra求最短路 II(C++实现)堆优化版Dijkstra算法求最短路模板题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路:朴素Dijkstra算法有一步是找距离节点1最近的且最终节点未确定的节点,这一步是找最小值,并且找最小值的时间复杂度是O(n),因此可以想到,用堆来优化这一步,使其时间复杂度降为O(1) 如果对朴素Dijkstra算法的思想

cloud的博客 984

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

AcWing 850. Dijkstra求最短路 II【最短路】【堆优化版Dijkstra】

AcWing 850. Dijkstra求最短路 II【最短路】【堆优化版Dijkstra】

Derrickhang的博客 655

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

AcWing 850:Dijkstra求最短路 II ← 堆优化+链式前向星

堆优化 Dijkstra 算法,用于稀疏图优势明显。但是,当边数接近稠密图的边数量级 n² 时,堆优化 Dijkstra 算法的时间复杂度 O(mlogn) 退化为 O(n²logn),此时的时间复杂度劣于朴素 Dijkstra 算法的时间复杂度 O(n²)。

hnjzsyjyj的专栏 995

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

AcWing 850. Dijkstra求最短路 II(堆优化)

#include<algorithm> #include<iostream> #include<cstring> #include<queue> using namespace std; const int N=1e5+10; int e[N],ne[N],w[N],h[N],idx; int dist[N]; bool st[N]; int n,m...

weixin_44488944的博客 298

AcWing850 Dijkstra求最短路 II(最短路、堆优化Dijkstra)

题目: 题解目录前言一、题目陈述二、解决思路三、代码实现总结 前言 一、题目陈述 二、解决思路 三、代码实现 总结

codertea的博客 186

【最短路——堆优化版的Dijkstra算法】AcWing 850. Dijkstra求最短路 II

AcWing 850. Dijkstra求最短路 II 代码: #include <iostream> #include <cstring> #include <algorithm> #include <queue> using namespace std; typedef pair<int, int> PII;//first为当前节点距起点的距离,second为该节点编号 const int N = 1e6 + 10; int n, m

享受当下 287

堆优化版dijkstra算法:AcWing 850. Dijkstra求最短路 II

堆优化版dijkstra算法分析: 朴素版dijkstra的时间复杂度为O(n^2),主要瓶颈在于第1步的寻找全局最小值的过程。 可以用小根堆(C++STL priority_queue)对dist数组进行维护,用O(logn)的时间获取最小值并从堆中删除,用O(logn)的时间执行一条边的扩展和更新。 因此最终我们可在 **O(m logn)**的时间”内实现 Dijkstra算法。 该算法适用于稀疏图,非负权边图。 代码片段: int dijk() { memset(dist, 0x3f

Jacob0824的博客 773

acwing 850. Dijkstra求最短路 II 堆优化Dijkstra

【代码】acwing 850. Dijkstra求最短路 II 堆优化Dijkstra。

CSYangyaoslal的博客 113

AcWing 850. Dijkstra求最短路 II(Dijkstra稠密图堆优化模板)

题面链接 https://www.acwing.com/problem/content/description/852/ 思路 和朴素版的Dijkstra类似,只不过我们对边的存储进行堆优化,优先将短的边先更新(基于贪心策略) 代码 #include<bits/stdc++.h> using namespace std; //----------------自定义部分---------------- #define ll long long #define mod 1000000007 #def

小谢的博客 604

AcWing 850.Dijkstra求最短路 II (STL邻接表 + 堆优化)

给定一个nn个点mm条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出11号点到nn号点的最短距离,如果无法从11号点走到nn号点,则输出−1−1。 输入格式 第一行包含整数nn和mm。 接下来mm行每行包含三个整数x,y,zx,y,z,表示存在一条从点xx到点yy的有向边,边长为zz。 输出格式 输出一个整数,表示11号点到nn号点的最短距离。 如果路径不存在,则输出−1−1。 数据范围 1≤n,m≤1.5×1...

weixin_57202646的博客 205

AcWing----850. Dijkstra求最短路 II (Java)_堆优化Dijkstra_迪杰斯特拉算法_边权值为正

Dijkstra求最短路 II①. 题目②. 思路③. 学习点④. 代码实现 原题链接 ①. 题目 ②. 思路 ③. 学习点 ④. 代码实现

591

堆优化Dijkstra

大雪菜的课(笔记) 搜索与图论(二) 1.最短路 (2).堆优化Dijkstra 模板(堆优化版dijkstra —— 模板题 AcWing 850. Dijkstra求最短路 II) 时间复杂度 O(mlogn)O(mlogn), n表示点数,m表示边数 typedef pair<int, int> PII; int n; // 点的数量 int h[N], w[N], e[N], ne[N], idx; // 邻接表存储所有边 int dist[N];

m0_46370829的博客 221

【ACWing】850. Dijkstra求最短路 II

题目地址: https://www.acwing.com/problem/content/description/852/ 给定一个nnn个点mmm条边的有向图,图中可能存在重边和自环,所有边权均为非负值。求111号点到nnn号点的最短距离,如果无法从111号点走到nnn号点,则输出−1-1−1。 数据范围: 1≤n,m≤1.5×1051\le n,m\le 1.5\times 10^51≤n,m≤1.5×105 0≤e≤100000\le e\le 100000≤e≤10000 eee是边长。 由数据范围

数学、算法爱好者的博客 1116
上一篇: AcWing 849. Dijkstra求最短路 I(Dijkstra)
下一篇: AcWing 853. 有边数限制的最短路(Bellman-Ford算法)
AARM
博客等级 码龄10年 10粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值