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

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

输入格式

第一行包含整数n和m。

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

输出格式

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

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

数据范围

1≤n≤5001≤n≤500,
1≤m≤1051≤m≤105,
图中涉及边长均不超过10000。

输入样例:

3 3
1 2 2
2 3 1
1 3 4

输出样例:

3

代码:
import java.util.Arrays;
import java.util.Scanner; public class Main{
static final int N=505;
static final int INF=(int)1e9+5;
static int n,m;
static int g[][]=new int[N][N];
static boolean vis[]=new boolean[N];
static int dis[]=new int[N];
static int dijkstra(){
Arrays.fill(dis, INF);
dis[1]=0;
for(int i=0;i<n;i++){
int t=-1;
for(int j=1;j<=n;j++){
if(!vis[j] && (t==-1||dis[t]>dis[j]))
t=j;
}
vis[t]=true;
for(int j=1;j<=n;j++){
dis[j]=Math.min(dis[j], dis[t]+g[t][j]);
}
}
if(dis[n]==INF) return -1;
else return dis[n];
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
n=scan.nextInt();
m=scan.nextInt();
for(int i=0;i<N;i++) Arrays.fill(g[i], INF);
while(m-->0){
int a=scan.nextInt();
int b=scan.nextInt();
int c=scan.nextInt();
g[a][b]=Math.min(g[a][b], c);
}
System.out.println(dijkstra());
}
}

最新文章

  1. 深入理解DOM节点类型第七篇——文档节点DOCUMENT
  2. parallelism
  3. Windows Server+AMD GPU+HDMI时_黑边_不铺满问题的解决办法
  4. JavaWeb学习系列——第一个JavaWeb程序
  5. Windows 2008远程多用户登录的配置方法(转载)
  6. golang 移动应用例子 example/basic 源码框架分析
  7. hdu 4541 Ten Googol
  8. 【转】【漫画解读】HDFS存储原理
  9. 第二章 js数据类型和变量
  10. Linux设置文件读写权限
  11. 亲密接触Redis-第一天
  12. Assets.xcassets误删后的恢复
  13. tensorflow 模型保存和加载
  14. nginx + tomcat = http &amp;&amp; https
  15. vue2.0获取自定义属性的值
  16. Ansible 小手册系列 十四(条件判断和循环)
  17. EntityFrameworkCore DBFirst
  18. 启动vmware虚拟机报错:“无法获得VMCI驱动程序的版本:句柄无效”
  19. Codeforces 884C.Bertown Subway ----判环,思路
  20. 【bzoj 2839】集合计数

热门文章

  1. Spring Cloud(八):使用Spring Cloud Bus来实现配置动态更新
  2. 进阶之路 | 奇妙的Drawable之旅
  3. search(0)- 企业搜索,写在前面
  4. OpenResty + ngx_lua_waf使用
  5. ES6 - 报错整理(1): Unexpected end of JSON input while parsing near &#39;...es&quot;:&quot;7.0.0-alpha.11&quot;,&#39;
  6. 常见Linux命令学习
  7. idea如何做到多模块开发项目 收藏整理
  8. 使用Ajax时[object%20object] 报错的解决方案
  9. open xml 导出excel遇到的问题
  10. mysql基于二进制文件的主从复制