题目名称 3690. [CF1060E]Sergey and Subway
输入输出 Sergeyas.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravataryrtiop 于2022-06-28加入
开放分组 全部用户
提交状态
分类标签
LCA 最短路 计数 Codeforces
分享题解
通过:4, 提交:8, 通过率:50%
Gravatar遥时_彼方 100 0.150 s 6.68 MiB C++
GravatarZRQ 100 0.220 s 8.29 MiB C++
Gravatar遥时_彼方 100 0.250 s 89.46 MiB C++
Gravatar 100 0.251 s 89.46 MiB C++
Gravatar遥时_彼方 30 0.237 s 6.68 MiB C++
GravatarZRQ 30 0.269 s 8.29 MiB C++
GravatarLfc_HeSn 30 7.232 s 10.44 MiB C++
Gravatar 0 0.000 s 0.00 MiB C++
本题关联比赛
EYOI暨SBOI暑假快乐赛5th
关于 Sergey and Subway 的近10条评论(全部评论)
注意开long long
Gravatar遥时_彼方
2022-06-29 15:44 1楼

3690. [CF1060E]Sergey and Subway

★★   输入文件:Sergeyas.in   输出文件:Sergeyas.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

给出一颗 $N$ 个节点的树,现在我们在原图中每个不直接连边但是中间只间隔一个点的两个点之间连一条边。

比如在原图中 $u$ 与 $v$ 连边,$v$ 与 $w$ 连边,但是 $u$ 与 $w$ 不连边,这时候我们就需要连一条 $u$ 与 $w$ 的边。

现在我们需要求出新图中每一个点对 $(i,j)\ (1 \le i \le j \le N)$ 的经过的最少的边数和。

【输入格式】

第一行包含一个整数 $N$,表示树的节点数量。

接下来 $N-1$ 行,每行两个整数 $x,y$,表示节点 $x,y$ 之间有一条边。

【输出格式】

一个整数,表示所有点对之间的最少边数之和。

【样例输入1】

4
1 2
1 3
1 4

【样例输出1】

6

【样例输入2】

4
1 2
2 3
3 4

【样例输出2】

7

【样例说明】

第一组样例中没有新边,不做解释。

第二组样例中,建出新边后,得到:

$(1,2)$ 之间最少 $1$ 条边,$(1,3)$ 之间最少 $1$ 条边,$(1,4)$ 之间最少 $2$ 条边(即 $1\to 3,3 \to 4$)。

$(2,3)$ 之间最少 $1$ 条边,$(2,4)$ 之间最少 $1$ 条边。

$(3,4)$ 之间最少 $1$ 条边。

故答案为 $1+1+2+1+1+1=7$。

【数据规模与约定】

对于 30% 的数据,$1 \le n \le 10^3$。

对于 100% 的数据,$1 \le n \le 2 \times 10^5$。

【来源】

Codeforces Round #513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2)