LC A— 距离
发布时间
阅读量:
阅读量
距离
给定一棵包含 n 个节点的树,需要对多个查询进行处理,以确定任意两点之间的最短路径长度。
说明如下:
-
所有边均为无向性质;
-
节点编号依次为 1,2,…,n;
-
输入形式如下:
首行给出两个整数 n 和 m,其中 n 表示节点数量,m 表示查询次数;接下来 n−1 行,每行包含三个整数 x,y,k,表示节点 x 与 y 之间有一条边,其长度为 k;
然后是 m 行,每行包含两个整数 x,y,表示询问节点 x 到 y 的最短距离。
树中所有结点的编号范围为 1 至 n。
输出形式:
共 m 行,每行对应一个查询的结果。
数据范围:
2≤n≤10^4,
1≤m≤2×10^4,
0
1≤x,y≤n
输入样例1:
2 2
1 2 100
1 2
2 1
输出样例1:
100
100
输入样例2:
3 2
1 2 10
3 1 15
1 2
3 2
输出样例2:
10
25
题解:
由于树结构中任意两点间的路径唯一,因此此处仅采用tarjan算法进行了一次离线计算,后续将补充倍增法的实现代码。
#include <bits/stdc++.h>
using na
全部评论 (0)
还没有任何评论哟~
