时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给定一棵

个节点的无根树,其中边权只有

或

两种。
现在定义

两点之间的距离
)
为两点间简单路径上所有边权的最大公约数。令
)
表示为节点

到树上其他节点的距离之和。
求
%2C%20f(2)%2C%20%5Cdots%2C%20f(n)))
。
输入描述:
第一行包含一个正整数
,代表这棵树的节点数量。
接下来
行,每行三个正整数
,代表
和
之间有一条权值为
的无向边。
输出描述:
输出一行一个正整数,代表
。
示例1
输入
复制
5
1 2 2
2 3 2
1 4 1
4 5 2
说明
以节点
作根时, %20%3D%20w(4%2C%201)%20%2B%20w(4%2C%202)%20%2B%20w(4%2C%203)%20%2B%20w(4%2C%205)%20%3D%20gcd(1%2C%202)%20%2B%20gcd(1%2C%202%2C%202)%20%2B%201%20%2B%202%20%3D%201%20%2B%201%20%2B%201%20%2B%202%20%3D%205)
可以证明,没有比上述情况更小的价值。