思路就是:
找到这两个节点的最近公共父节点,然后重根遍历 计算到父节点的距离 两个点的距离-2*父节点的距离 就是所求的了
TarJan
package com.graph;
import java.util.Scanner;
import java.util.Vector;
/*
*
*
* Tarjan 算法实现最近公共父节点
*/
public class LCA {
private static int [][]Gra = new int[100][100];
private static int [][]res = new int[100][3];
private static int []fa = new int[100];
private static int []vis = new int[100];
private static int []dis = new int[100];
private static Vector<Integer> []query = new Vector[100];
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
for(int i = 1;i<=n;i++)
{
int u = in.nextInt();
int v = in.nextInt();
int d = in.nextInt();
Gra[u][v] = d;
Gra[v][u] = d;
}
for(int i = 0;i<100;i++)
{
query[i] = new Vector&l