#L5000. 「POI 2023/2024 R3」Wyścig kolarski

    ID: 3216 传统题 1000ms 256MiB 尝试: 4 已通过: 1 难度: 10 上传者: 标签>动态规划图结构强连通分量拓扑排序图论POI

「POI 2023/2024 R3」Wyścig kolarski

「POI 2023/2024 R3」Wyścig kolarski

题目描述

题目译自 XXXI Olimpiada Informatyczna – III etap Wyścig kolarski

Bajtocja 首部每年举办盛大的自行车赛。城市有 nn 个编号从 11nn 的地点,连接它们的 mm 条单向道路保证从地点 11 可达任意其他地点。参赛者从某地点出发,沿道路方向骑行,至少经过一条道路后返回起点 ss,形成环路 $s = t_0, t_1, t_2, \ldots, t_\ell = s (\ell \geq 1)$,每对连续地点 ti1t_{i-1}ti(1i)t_i (1 \leq i \leq \ell) 存在道路。

为丰富赛道路线,组织者获市长许可,可临时调整部分道路方向:选择一个道路序列,道路两两不同,长度为 kk,第 i(1ik)i (1 \leq i \leq k) 条道路从 zi1z_{i-1}ziz_i。地点 ziz_i 无额外限制,可重复,且不要求 z0=zkz_0 = z_k。随后,每条选定道路方向翻转,即从 ziz_izi1z_{i-1}。若选择空序列,则不调整。

组织者想知道,多少起点能在调整道路方向后形成从 ss 出发并返回的环路,称其为"可行起点数"。市长还提供了 qq 条可新增道路的清单,组织者需计算每条新增道路加入后可行起点数的变化。

你的任务是计算初始可行起点数,以及每条新增道路加入后的可行起点数。

输入格式

第一行包含两个整数 $n, m (1 \leq n \leq 1000000, 0 \leq m \leq 1000000)$,分别表示地点数和道路数。

接下来的 mm 行,每行包含两个整数 ai,bi(1ai,bin)a_i, b_i (1 \leq a_i, b_i \leq n),表示从 aia_ibib_i 的道路。

下一行包含一个整数 q(0q1000000)q (0 \leq q \leq 1000000),表示新增道路数。

接下来的 qq 行,每行包含两个整数 xi,yi(1xi,yin)x_i, y_i (1 \leq x_i, y_i \leq n),表示从 xix_iyiy_i 的新增道路。

城市可能有多条道路连接同一对地点,或地点到自身的道路。新增道路也可能连接已连通的地点对。从地点 11 可达任意其他地点。

输出格式

第一行输出不新增道路时的可行起点数。

接下来的 qq 行,第 ii 行输出新增第 ii 条道路后的可行起点数。

样例

输入

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

输出

3
4
4
5

解释

初始道路网络如下:

地点 2,3,42, 3, 4 为可行起点。例如,调整道路 242 \to 4 的方向,或同时调整 232 \to 3343 \to 4 的方向,可使 2,3,42, 3, 4 各形成返回自身的环路。

新增道路 131 \to 3 后,网络如下:

地点 2,3,42, 3, 4 仍为可行起点,地点 11 因调整 131 \to 3 方向可形成环路,成为可行起点,总计 44

新增道路 454 \to 5 后,网络如下:

地点 2,3,42, 3, 4 仍为可行起点,地点 55 因调整 454 \to 5 方向可形成环路,成为可行起点,总计 44

新增道路 515 \to 1 后,无需调整方向,所有地点 1,2,3,4,51, 2, 3, 4, 5 均可形成环路,总计 55

附加样例

  1. n=3,m=n2,q=1n = 3, m = n^2, q = 1,每对地点间恰有一条道路,查询为 x1=2,y1=2x_1 = 2, y_1 = 2,答案为 3,33, 3
  2. $n = 5000, m = n, q = 0, a_i = i, b_i = (i \mod n) + 1$ 对于 1in1 \leq i \leq n,答案为 50005000
  3. $n = 500000, m = 2 \cdot (n - 1), q = 0, a_i = a_{n-1+i} = 1, b_i = b_{n-1+i} = i + 1$ 对于 1in11 \leq i \leq n - 1,答案为 500000500000
  4. $n = 1000000, m = n - 1, q = n - 3, a_i = \lfloor (i + 1)/2 \rfloor, b_i = i + 1$ 对于 1in11 \leq i \leq n - 1,查询为 xi=(i+3)/4,yi=i+3x_i = \lfloor (i + 3)/4 \rfloor, y_i = i + 3 对于 1in31 \leq i \leq n - 3,答案为 0,3,3,,30, 3, 3, \ldots, 3

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
1 n,m,q15n, m, q \leq 15 6
2 n,m5000,q=0n, m \leq 5000, q = 0 15
3 q=0q = 0 30
4 无附加限制 49