Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 求两点之间的最小距离_Java_Algorithm - Fatal编程技术网

Java 求两点之间的最小距离

Java 求两点之间的最小距离,java,algorithm,Java,Algorithm,我有M个点,它们由N条线连接。接下来的N行输入包含不同点对之间的距离。我想求每对点之间的最小距离之和 样本输入: 样本输出: 说明: d1,2=5+3=8 d1,3=5 d2,3=3 d2,4=3+5=8 d3,4=5 d4,5=2 总和=8+5+3+8+5+2=31 编辑1: 我已使用以下代码将扭曲图转换为邻接矩阵: Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt

我有M个点,它们由N条线连接。接下来的N行输入包含不同点对之间的距离。我想求每对点之间的最小距离之和

样本输入:

样本输出:

说明:

d1,2=5+3=8

d1,3=5

d2,3=3

d2,4=3+5=8

d3,4=5

d4,5=2

总和=8+5+3+8+5+2=31

编辑1:

我已使用以下代码将扭曲图转换为邻接矩阵:

    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    int m = in.nextInt();
    int[][] vertices = new int[m][m];

    for(int i=0; i<m; i++){
        for(int j=0; j<m; j++){
            vertices[i][j]=0;
        }
    }
    for(int i=0; i < m; i++){
            int a = in.nextInt();
            int b = in.nextInt();
            int c = in.nextInt();
            vertices[a][b] = c;
            vertices[b][a] = c;
    }
现在,如果存在一条连接点的直线,如何找到任意两点之间的最短距离?

用于构造所有对最短路径的矩阵。现在,将矩阵中的所有值相加并除以2,因为每个距离将计数两次


wiki页面上的伪代码足以将其转换为java。

您尝试了什么,您在哪里卡住了?我们不能为你做全部的事情!为什么d1、4、d1、5、d2、5、d3、5不包括在总数中?@SujeetSinha刚刚编辑了我的问题。如果你能帮忙,我将不胜感激me@ajb因为在输入中没有直接连接它们的行
31
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    int m = in.nextInt();
    int[][] vertices = new int[m][m];

    for(int i=0; i<m; i++){
        for(int j=0; j<m; j++){
            vertices[i][j]=0;
        }
    }
    for(int i=0; i < m; i++){
            int a = in.nextInt();
            int b = in.nextInt();
            int c = in.nextInt();
            vertices[a][b] = c;
            vertices[b][a] = c;
    }