import java.util.*; import java.lang.*; import java.awt.datatransfer.FlavorEvent; import java.io.*; import java.security.spec.ECField; import java.util.List; import java.util.Scanner; import java.io.*; //public class Main{ // public static void main(String []args){ // // } // //} public class Main{ static class Pair implements Comparable<Pair>{ int w,x; Pair(){ } Pair(int a_,int b_){ w=a_;x=b_; } @Override public int compareTo(Pair o) { return w-o.w; } } static int []dis = new int [1010]; static int INF = 0x3f3f3f3f; static int [] to = new int [1010]; static int [] w = new int [1010]; static int [] nxt = new int [1010]; static int [] head = new int [1010]; static int [] vis = new int [1010]; static int cnt = 0; static PriorityQueue<Pair> q = new PriorityQueue<>(); public static void ADD(int u,int v,int ww){ to[cnt]=v; w[cnt]=ww; nxt[cnt]=head[u]; head[u]=cnt;cnt++; } public static int diji(int st,int en){ Arrays.fill(dis,INF); Arrays.fill(vis,0); dis[st]=0; q.add(new Pair(0,st)); while (!q.isEmpty()){ Pair t= q.poll(); if(vis[t.x]==1)continue; vis[t.x]=1; for(int i=head[t.x];i!=-1;i=nxt[i]){ int v = to[i]; if(dis[v]>t.w+w[i]){ dis[v] = t.w+w[i]; q.add(new Pair(dis[v],v)); } } } return dis[en]; } public static void main(String []args){ Scanner sc = new Scanner(System.in); Arrays.fill(head,-1); for(int i=0;i<4;i++){ int u,v,ww; u=sc.nextInt(); v=sc.nextInt(); ww=sc.nextInt(); ADD(u,v,ww); ADD(v,u,ww); } System.out.println(diji(0,3)); for(int i=0;i<4;++i){ System.out.print(dis[i]+" "); } } }
样例:
0 1 1
1 2 2
2 3 1
1 3 6
输出 4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律