import java.util.Scanner;
/**
* 求单源点到其他各个点的最短路径及距离
* 1,定义数组map[i][j],表示i到j的距离,初始值默认为1000000.定义数组intWay[i][j],为true表示i到j的路断开。
* 2,使用迪杰斯特拉算法,定义shortest数组,表示源点到每个点的最短距离,visited表示最短距离是否求出,len表示源点到每个点所需修复的距离。path表示源点到每个点的路径
* 3,当求出一个点的最短路径时,用该点的最短路径更新剩余点的最短路径,循环直到求出所有点的最短路径为止。最后遍历得到源点到目标点的修复最短距离。
*/
public class P3905 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//点数
int N = sc.nextInt();
//边数
int M = sc.nextInt();
//无向图
int[][] map = new int[N][N];
//true标识i到j的路断裂
boolean[][] intWay = new boolean[N][N];
//初始化无向图,权值为1000000,
for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
map[i][j] = 1000000;
}
}
//初始化连接边的权值
for(int k=0;k<M;k++) {
int i = sc.nextInt()-1;
int j = sc.nextInt()-1;
int h = sc.nextInt();
map[i][
P3905 道路重建 (迪杰斯特拉算法)
最新推荐文章于 2024-08-13 14:56:59 发布
本文探讨了如何运用迪杰斯特拉算法(P3905)解决道路重建的挑战,详细阐述了算法的实施过程及其在Java编程语言中的应用。
摘要由CSDN通过智能技术生成