AcWing 849. Dijkstra求最短路 I

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

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

输入格式

第一行包含整数 n 和 m。

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

输出格式

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

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

数据范围

1≤n≤500
1≤m≤10^5
图中涉及边长均不超过10000。

输入样例:
3 3
1 2 2
2 3 1
1 3 4
输出样例:
3

 

#include<stdio.h>
#include<string.h>
int state[100005];
int dis[100005];
int e[100005];
int ne[100005];
int head[100005];
int w[100005];
int idx=1;
int n,m;
int min(int a,int b) {if(a<b)return a;else {return b;}
}
void dijsktra() {dis[1]=0;for(int i=1; i<=n; i++) {int t=-1;for(int j=1; j<=n; j++) {if(!state[t]&&(t==-1||dis[t]>dis[j])) {t=j;}}state[t]=1;for(int u=head[t]; u!=-1; u=ne[u]) {int j=e[u];dis[j]=min(dis[j],dis[t]+w[u]);}}
}
void addedge(int a,int b,int c) {e[idx]=b;w[idx]=c;ne[idx]=head[a];head[a]=idx++;}
int main() {memset(dis,0x3f,sizeof(dis));memset(head,-1,sizeof(head));scanf("%d",&n);scanf("%d",&m);for(int i=1; i<=m; i++) {int u,v,w;scanf("%d",&u);scanf("%d",&v);scanf("%d",&w);addedge(u,v,w);}if (dis[m] == 0x3f3f3f) printf("-1");else {printf("%d",dis[m]);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python从Excel表中查找指定数据填入新表

#读取xls文件中的数据 import xlrd file "原表.xls" wb xlrd.open_workbook(file) #读取工作簿 ws wb.sheets()[0] #选第一个工作表 data [] for row in range(7, ws.nrows): name ws.cell(row, 1).value.strip() #科室名称 total1 ws.cell(row, 2…

TIA博途与威纶通触摸屏无实物仿真调试的具体方法示例

TIA博途与威纶通触摸屏无实物仿真调试的具体方法示例 准备条件: TIA PORTAL V16 S7-PLCSIM V16 EasyBuilderPro V6.9.1 NetToPLCsim V1.2.5 如有需要,可以在这个链接中下载 NetToPLCSim - Browse Files at SourceForge.net538 weekly downloads3 weekly downloads12 weekly d…

QTransform 解析

实例: 以点(100,100) 围绕点(200,150)旋转45后的坐标, 采用QTransform 类方法实现移动变换. Test1 采用一个QTransform 对象,通过连续的变换后,发现最后的结果与预先的不一致. 原因: 当trans1.translate(-200., -150.); 后,坐标系的原点变成了-200,-150. 之后trans1.rotat…

LoveDA: 遥感土地覆盖数据集的领域自适应语义分割

引入了土地覆盖域自适应语义分割(LoveDA)数据集来推进语义和可转移学习。LoveDA数据集包含来自三个不同城市的5987张高分辨率图像和166768个带注释的对象。与现有数据集相比&#xff0c;LoveDA数据集包含两个领域(城市和农村)&#xff0c;这带来了相当大的挑战&#xff0c;因为…

华为OD机试题-贪心歌手

题目解析 题目描述&#xff1a; 歌手准备从 A 城去 B 城参加演出 按照合同&#xff0c;他必须在 T 天内赶到。歌手途径 N 座城市。歌手不能往回走。每两座城市之间需要的天数都可以提前获知。歌手在每座城市都可以在路边卖唱赚钱。经过调研&#xff0c;歌手提前获知了每座城市…

C# AOP面向切面编程

AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向切面编程&#xff09;是一种编程范式&#xff0c;旨在将横切关注点&#xff08;Cross-cutting Concerns&#xff09;从业务逻辑中分离出来。在传统的面向对象编程中&#xff0c;横切关注点&#xff08;如日志记录、…

R包:蛋白质组学质控评估PTXQC包

介绍 PTXQC包是2016年发表在J Proteome Res期刊上的R包&#xff0c;它主要是对MaxQuant输出结果进行提取处理从而获得评估蛋白质质量结果。 安装 从github安装&#xff0c;安装过程会自动构建tutorial。 devtools::install_github("cbielow/PTXQC", build_vignet…

AI数字人直播saas系统源码部署火爆!无人直播系统全攻略

随着直播行业的日益兴盛&#xff0c;各种直播模式和玩法不断涌现。其中&#xff0c;AI数字人直播更是凭借着其在降本增效的独特优势而在众多直播模式中脱颖而出&#xff0c;成为了众多企业已经引进或计划引进的新型技术。而各大数字人源码厂商推出的AI数字人直播saas系统源码部…

面试题07-09

知道了 InnoDB 的索引实现后&#xff0c;就很容易明白为什么不建议使用过长的字段作为主键&#xff0c;因为所有辅助索引都引用主索引&#xff0c;过长的主索引会令辅助索引变得过大。再例如&#xff0c;用非单调的字段作为主键在 InnoDB 中不是个好主意&#xff0c;因为 InnoD…

走拼箱货必看海运拼箱的实用技巧

在国际海运运输中&#xff0c;海运拼箱适用于货物数量较少或体积不足以填满整个集装箱的情况。 海运拼箱货物通常由物流公司或货代进行组织和管理。多个货主的货物通过合理拼装&#xff0c;使集装箱空间得到充分利用。 那么&#xff0c;在海运拼箱和整柜有哪些不同&#xff0c…

Linux -- 认识gcc/g++、代码的编译过程

目录 前言&#xff1a; 使用 gcc/g&#xff1a; 代码的编译过程&#xff1a; 预处理&#xff1a; 头文件展开&#xff1a; 宏替换去注释&#xff1a; ​编辑 条件编译&#xff1a; 编译&#xff1a; 汇编&#xff1a; 链接&#xff1a; 动态库&#xff08;动态链…

使用Simulink基于模型设计(二):系统定义和布局

Simulink模型的顶层系统布局是许多工程团队可以使用的公共环境&#xff0c;是基于模型的设计范式&#xff1a;分析、设计、检验和实现。您可以通过确定模型的结构和各个组件来定义顶层系统。然后&#xff0c;您可以将模型按照层次结构进行组织&#xff0c;分别与系统的各个组件…

【鸿蒙学习笔记】交互事件

官方文档&#xff1a;交互事件 目录标题 分类交互事件-触屏交互事件-手势事件单一手势 分类 交互事件-触屏 在组件上按下(Down) , 滑动(Move) , 抬起(up)时触发的回调事件。包括点击事件、触摸事件和拖拽事件 交互事件-手势事件 在手机上点击打开应用 , 长按后拖动应用 , 这…

自动化数据集成的BI工具,为你提供决策洞察力

传统的商业智能&#xff08;BI&#xff09;报表系统采用的是“业务提报表需求&#xff0c;IT进行开发”的模式。决策管理者和业务人员提出用报表等来展示经营管理数据的需求&#xff1b;接着IT响应需求&#xff0c;进行需求沟通、数据处理加工、报表开发等主体工作&#xff1b;…

使用java代码取本月第一个工作日

根据参数或当前月&#xff0c;获取本月第一个工作日 文章目录 根据参数或当前月&#xff0c;获取本月第一个工作日前言一、根据当前日期获取当前月的第一个工作日二、根据参数日期&#xff0c;获取参数月的第一个工作日。总结 前言 这里我们列举两个方法&#xff1a; 1、没有参…

RFID资产管理系统 RFID固定资产管理系统

大多数企业都曾被固定资产管理“难”的问题困扰&#xff1a;账物不符、查询不便、盘点耗时……因此&#xff0c;越来越多的企业选择用资产管理系统&#xff0c;来实现资产智能化管理。 RFID资产管理系统方案是针对大多数企业存在的资产管理痛点&#xff0c;采用RFID技术&#…

uni-app三部曲之三: 路由拦截

1.引言 路由拦截&#xff0c;个人理解就是在页面跳转的时候&#xff0c;增加一级拦截器&#xff0c;实现一些自定义的功能&#xff0c;其中最重要的就是判断跳转的页面是否需要登录后查看&#xff0c;如果需要登录后查看且此时系统并未登录&#xff0c;就需要跳转到登录页&…

Python地震波逆问题解构算法复杂信号分析

&#x1f3af;要点 &#x1f3af;时域、时频域以及时间和频率相关联偏振特性分析三种算法 | &#x1f3af;时域波参数估计算法 | &#x1f3af;机器学习模型波形指纹分析算法 | &#x1f3af;色散曲线和频率相关波分析算法 | &#x1f3af;动态倾斜校正算法 | &#x1f3af;声…

【JS|第21期】JavaScript模块化:深入解析三种文件暴露方式

日期:2024年7月6日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083…

前后端项目部署方案汇总

前端项目 1、本地打包部署 # 本地打包部署到线上服务器 npm run build && \ rsync -r ./dist/* root127.0.0.1:/www/www.demo.com/www2、服务器端打包部署 步骤 拉取代码 -> 安装依赖 -> 打包编译 -> 拷贝到运行目录 -> 发送成功消息shell命令 git pu…