#P16161. [ICPC 2016 NAIPC] Tourists

[ICPC 2016 NAIPC] Tourists

题目描述

在树城(Tree City)中,有 nn 个旅游景点,分别用 11nn 的编号唯一标识。这些景点由 n1n-1 条双向道路连接,使得游客可以通过某条道路路径从任意一个景点到达另一个景点。

你是树城规划委员会的一名成员。经过对旅游业的大量研究,你的委员会发现了一个关于游客的非常有趣的事实:他们热爱数论!如果一个游客访问了编号为 xx 的景点,那么他会接着访问编号为 yy 的景点,当且仅当 y>xy > xyyxx 的倍数。此外,如果这两个景点没有直接道路相连,游客一定会经过连接 xxyy 的路径上的所有景点,即使它们不是 xx 的倍数。被访问的景点数量包括 xxyy 本身。我们将这个数量称为一条路径的长度。

考虑以下城市地图:

:::align{center} :::

以下是游客可能走的所有路径及其长度:

12=41 \to 2 = 4, 13=31 \to 3 = 3, 14=21 \to 4 = 2, 15=21 \to 5 = 2, 16=31 \to 6 = 3, 17=41 \to 7 = 4

18=31 \to 8 = 3, 19=31 \to 9 = 3, 110=21 \to 10 = 2, 24=52 \to 4 = 5, 26=62 \to 6 = 6, 28=22 \to 8 = 2

210=32 \to 10 = 3, 36=33 \to 6 = 3, 39=33 \to 9 = 3, 48=44 \to 8 = 4, 510=35 \to 10 = 3

为了利用游客行为的这一现象,委员会希望计算从景点 xx 到景点 yy(其中 y>xy > xyyxx 的倍数)的路径上的景点数量。你需要计算所有这些路径的 长度之和。对于上面的例子,总和为:$4 + 3 + 2 + 2 + 3 + 4 + 3 + 3 + 2 + 5 + 6 + 2 + 3 + 3 + 3 + 4 + 3 = 55$。

输入格式

每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。输入的第一行包含一个整数 nn2n200,0002 \leq n \leq 200{,}000),表示景点的数量。接下来的 n1n-1 行,每行包含一对空格分隔的整数 iijj1i<jn1 \leq i < j \leq n),表示景点 ii 和景点 jj 之间有一条直接相连的道路。保证景点集是连通的。

输出格式

输出一个整数,表示所有满足 y>xy > xyyxx 的倍数的路径 xyx \to y 的长度之和。

10
3 4
3 7
1 4
4 6
1 10
8 10
2 8
1 5
4 9
55

提示

翻译由 DeepSeek V3.2 完成