#P4320. 道路相遇

    ID: 3185 远端评测题 2000ms 500MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>图论倍增O2优化树链剖分,树剖圆方树

道路相遇

题目描述

在 H 国的小 w 决定到从城市 uu 到城市 vv 旅行,但是此时小 c 由于各种原因不在城市 uu,但是小 c 决定到在中途与小 w 相遇

由于 H 国道路的原因,小 w 从城市 uu 到城市 vv 的路线不是固定的,为了合理分配时间,小 c 想知道从城市 uu 到城市 vv 有多少个城市小 w 一定会经过,特别地,u,vu, v 也必须被算进去,也就是说无论如何答案不会小于 2

由于各种特殊的原因,小 c 并不知道小 w 的起点和终点,但是小 c 知道小 w 的起点和终点只有 qq 种可能,所以对于这 qq 种可能,小 c 都想知道小 w 一定会经过的城市数

H 国所有的边都是无向边,两个城市之间最多只有一条道路直接相连,没有一条道路连接相同的一个城市

任何时候,H 国不存在城市 uu 和城市 vv 满足从 uu 无法到达 vv

输入格式

第一行两个正整数 n,mn,m,表示 H 国的城市数,以及道路数。

下面 mm 行,每行两个不同的正整数 u,vu, v,表示城市 uu 到城市 vv 之间有一条边。

然后一行一个正整数 qq。 接下来 qq 行,每行两个正整数 u,vu, v 表示小 w 旅行的一种可能的路线

输出格式

输出共 qq 行,每行一个正整数

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

提示

从城市 11 到城市 55 总共有 44 种可能 :

123451 \to 2 \to 3 \to 4 \to 5

12351 \to 2 \to 3 \to 5

13451 \to 3 \to 4 \to 5

1351 \to 3 \to 5

可以发现小 w 总会经过城市 1,3,51,3,5,所以答案为 33

你可以认为小 w 不会经过相同的城市两次,当然,如果你认为可以经过相同的城市两次也不会影响答案

subtask1 : 15分,m=5,q=50m = 5, q = 50

subtask2 : 15分,n=100,q=5000n = 100, q = 5000

subtask3 : 20分,n=3000,q=5×105n = 3000, q = 5\times 10^5

subtask4 : 20分,n=499999,q=5×105,m=n1n = 499999, q = 5 \times 10^5, m = n-1

subtask5 : 30分,n=q=5×105n = q = 5 \times 10^5

对于所有数据 : $1\leq n\leq 5 \times 10^5, 1\leq q\leq 5\times 10^5, 1\leq m\leq \min(\frac{n(n-1)}{2}, 10^6)$