SZ#G6MT08. 【GESP强化 六级】城市距离

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11440 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 入门 上传者: 标签>GESPGESP强化C++c++编程题多叉树子树大小贡献法

题目描述

珅泽教育所在地区有 NN 座城市,编号为 11NN。城市之间有 N1N-1 条双向道路,任意两座城市之间都能互相到达,并且每条道路的长度都为 11,因此这些城市和道路构成一棵树。

对于两座不同的城市 uuvv,用 dist(u,v)dist(u,v) 表示从 uuvv 的最短路径所经过的道路数量。刘老师希望知道所有无序城市对之间的距离总和,也就是

u=1N1v=u+1Ndist(u,v)\sum_{u=1}^{N-1}\sum_{v=u+1}^{N}dist(u,v)。

请计算并输出这个总和。

输入格式

第一行输入一个整数 NN,表示城市数量。

接下来 N1N-1 行,每行输入两个整数 aia_ibib_i,表示城市 aia_i 与城市 bib_i 之间有一条双向道路。

输出格式

输出一个整数,表示所有无序城市对之间的距离总和。

5
1 5
2 1
4 3
3 2
20
7
4 7
1 4
3 1
5 6
1 2
4 5
46
9
6 5
3 7
3 1
1 4
5 3
7 8
8 9
1 2
96

数据范围与约定

  • 2N1052\le N\le10^5
  • 输入图是一棵树