CF979C Kuro and Walking Route

题目描述

Kuro 生活在一个叫做 Uberland 的国家,这个国家由 $n$ 个城镇组成,编号从 $1$ 到 $n$,并且有 $n-1$ 条双向道路连接这些城镇。任意两个城镇之间都可以互相到达。每条道路连接两个城镇 $a$ 和 $b$。Kuro 喜欢散步,他计划进行一次步行马拉松,他会选择一对城镇 $(u, v)$($u \neq v$),并从 $u$ 出发,沿最短路径走到 $v$(注意,$(u, v)$ 与 $(v, u)$ 被认为是不同的)。 奇怪的是,Uberland 有两个特殊的城镇,分别叫做 Flowrisa(编号为 $x$)和 Beetopia(编号为 $y$)。Flowrisa 是一个有很多香花的城镇,Beetopia 则有很多蜜蜂。特别地,如果在从 $u$ 到 $v$ 的路径上,Kuro 在经过 Flowrisa 之后又经过 Beetopia,那么蜜蜂会被花香吸引并蜇他,因此他会避免选择这样的 $(u, v)$ 对。 Kuro 想知道他可以选择多少对 $(u, v)$ 作为他的步行路线。由于他不是很聪明,他请求你帮他解决这个问题。

输入格式

第一行包含三个整数 $n$、$x$ 和 $y$($1 \leq n \leq 3 \times 10^5$,$1 \leq x, y \leq n$,$x \ne y$)——城镇数量、Flowrisa 的编号和 Beetopia 的编号。 接下来的 $n-1$ 行,每行包含两个整数 $a$ 和 $b$($1 \leq a, b \leq n$,$a \ne b$),表示一条连接城镇 $a$ 和 $b$ 的道路。 保证通过给定的道路,任意两个城镇之间都可以互相到达。也就是说,给定的城镇和道路构成一棵树。

输出格式

输出一个整数,表示 Kuro 可以选择的 $(u, v)$ 对的数量。

说明/提示

在第一个样例中,Kuro 可以选择以下这些对: - $(1, 2)$:他的路线是 $1 \rightarrow 2$, - $(2, 3)$:他的路线是 $2 \rightarrow 3$, - $(3, 2)$:他的路线是 $3 \rightarrow 2$, - $(2, 1)$:他的路线是 $2 \rightarrow 1$, - $(3, 1)$:他的路线是 $3 \rightarrow 2 \rightarrow 1$。 Kuro 不能选择 $(1, 3)$,因为他的路线是 $1 \rightarrow 2 \rightarrow 3$,在这条路径上,Kuro 先经过了 Flowrisa($1$),再经过了 Beetopia($3$),这是不允许的(注意,$(3, 1)$ 仍然允许,因为虽然经过了 Flowrisa 和 Beetopia,但不是按这个顺序)。 在第二个样例中,Kuro 可以选择以下这些对: - $(1, 2)$:他的路线是 $1 \rightarrow 2$, - $(2, 1)$:他的路线是 $2 \rightarrow 1$, - $(3, 2)$:他的路线是 $3 \rightarrow 1 \rightarrow 2$, - $(3, 1)$:他的路线是 $3 \rightarrow 1$。 由 ChatGPT 4.1 翻译