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

「POI 2023/2024 R3」Wyścig kolarski

AdditionalFile5000.zip

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

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

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

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

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

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

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

输入格式

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

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

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

接下来的 qq 行,每行包含两个整数 xi,yix_i, y_i (1xi,yin)(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=0n=5000, m=n, q=0ai=i,bi=(imodn)+1a_i=i, b_i=(i \bmod n)+1 对于 1in1 \leq i \leq n,答案为 50005000
  3. n=500000,m=2(n1),q=0n=500000, m=2 \cdot (n-1), q=0ai=an1+i=1,bi=bn1+i=i+1a_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=n1,q=n3n=1000000, m=n-1, q=n-3ai=(i+1)/2,bi=i+1a_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

数据范围与提示

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

子任务编号 附加限制 分值
11 n,m,q15n, m, q \leq 15 66
22 n,m5000,q=0n, m \leq 5000, q=0 1515
33 q=0q=0 3030
44 无附加限制 4949