#3510. [GESP八级模拟]等距教室

[GESP八级模拟]等距教室

题目描述

学校里有 nn 间教室,编号从 11nn。任意两间教室之间要么直接有走廊相连,要么通过若干条走廊间接相通,并且整座教学楼恰好有 n1n-1 条走廊——也就是说,所有教室和走廊构成了一棵树。两间教室之间的距离定义为它们之间最短路径上的走廊条数。

小 A 和小 B 每天会在不同的教室里上课。放学后,他们想找一个教室一起讨论题目,并且希望这个讨论教室到两人当天所在教室的距离相等

因为每天的课表都不同,你需要回答接下来 mm 天的提问:对于第 ii 天,小 A 在 xix_i 号教室、小 B 在 yiy_i 号教室,问有多少间教室 zz 满足

$$\operatorname{dist}(z, x_i) = \operatorname{dist}(z, y_i)$$

其中 dist(u,v)\operatorname{dist}(u, v) 表示教室 uu 与教室 vv 之间的距离(边数)。

输入格式

使用标准输入。输入包含多行:

  • 第一行一个整数 n (1n105)n\ (1 \le n \le 10^5),表示教室数量。
  • 接下来 n1n-1 行,每行两个整数 aj,bj (1aj,bjn)a_j, b_j\ (1 \le a_j, b_j \le n),表示第 jj 条走廊连接了 aja_jbjb_j 两间教室。
  • 接下来一行一个整数 m (1m105)m\ (1 \le m \le 10^5),表示提问的天数。
  • 接下来 mm 行,第 ii 行包含两个整数 xi,yi (1xi,yin)x_i, y_i\ (1 \le x_i, y_i \le n),表示第 ii 天小 A 和小 B 所在的教室编号。

保证给定的 nn 个点与 n1n-1 条边构成一棵树。

输出格式

使用标准输出。对于每一天输出一行一个整数,表示到小 A、小 B 当天教室距离相等的教室数量。

样例 #1

5
1 2
2 3
2 4
4 5
1
3 4
2

样例解释 #1

树的形状为:

    1
    |
    2
   / \
  3   4
      |
      5

11 天小 A 在 33 号教室、小 B 在 44 号教室,两人距离为 22(路径 3243-2-4)。逐间检查:

  • 教室 11:到 33 距离 22,到 44 距离 22,相等;
  • 教室 22:到 33 距离 11,到 44 距离 11,相等;
  • 教室 33:到自身距离 00,到 44 距离 22,不等;
  • 教室 44:到 33 距离 22,到自身距离 00,不等;
  • 教室 55:到 33 距离 33,到 44 距离 11,不等。

共有 22 间教室满足条件。

样例 #2

6
1 2
2 3
3 4
4 5
5 6
2
2 5
1 5
0
1

样例解释 #2

11 天两人在 2255,距离为 33(奇数),不可能存在到两者距离相等的教室,输出 00

22 天两人在 1155,距离为 44(偶数),唯一满足条件的教室是路径正中间的第 33 间,输出 11

数据范围

对于所有数据:1n1051 \le n \le 10^51m1051 \le m \le 10^5,给定的 nn 个点与 n1n-1 条边构成一棵树,1xi,yin1 \le x_i, y_i \le n

本题采用捆绑测试。只有通过一个子任务的全部测试,才能获得该子任务的分数。

子任务 分值 测试点 附加约束
11 2020 001004001 \sim 004 n100n \le 100m100m \le 100,无依赖
22 005008005 \sim 008 n1000n \le 1000m1000m \le 1000,无依赖
33 6060 009014009 \sim 014 无附加约束,无依赖

提示

注意两人可能在同一个教室(xi=yix_i = y_i),此时所有教室都满足条件。