QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 512 MB Total points: 100

#11480. 自行车赛

Statistics

在巴伊托奇亚(Bajtocja)的首都,每年都会举办一场盛大的自行车赛。城中有 $n$ 个地点,编号从 $1$ 到 $n$,由 $m$ 条单向道路连接。已知从地点 $1$ 可以到达任何其他地点。参赛者从某个地点 $s$ 出发,沿着道路(按其方向)行驶,最终回到出发地点 $s$(至少经过一条道路)。因此,比赛路线为 $s = t_0, t_1, t_2, \dots, t_\ell = s$(其中 $\ell \ge 1$),且对于每个 $i$($1 \le i \le \ell$),都存在一条从地点 $t_{i-1}$ 到地点 $t_i$ 的道路。

为了增加路线的多样性,赛事组织者获得了市长的许可,可以按以下方式临时改变某些道路的方向:组织者可以选择一个由两两不同的道路组成的序列。设该序列的长度为 $k$,对于每个 $i$($1 \le i \le k$),第 $i$ 条选定的道路必须是从地点 $z_{i-1}$ 到地点 $z_i$ 的道路。对地点 $z_i$ 没有额外限制,特别是它们不必互不相同,也不要求 $z_0 = z_k$。随后,为了比赛的需要,改变这些道路中每一条的方向,即对于每个 $i$($1 \le i \le k$),原先从 $z_{i-1}$ 到 $z_i$ 的道路现在变为从 $z_i$ 到 $z_{i-1}$ 的道路。如果组织者选择空序列,则不进行任何改变。

现在,组织者想知道,在允许按上述方式临时改变某些道路方向的前提下,有多少个起始地点 $s$ 存在一条从 $s$ 出发并回到 $s$ 的比赛路线。我们将此数值称为“允许的起始地点数量”。

组织者从市长那里收到了一份包含 $q$ 条额外道路的列表,其中每一条道路都可以被修建以用于比赛。因此,他们希望确定对于每一条额外道路,在修建该道路后,允许的起始地点数量是多少。

你的任务是确定初始的允许起始地点数量,并确定对于 $q$ 条额外道路中的每一条,在修建该道路后允许的起始地点数量。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n \le 1\,000\,000$,$0 \le m \le 1\,000\,000$),分别表示地点数量和道路数量。接下来的 $m$ 行中,第 $i$ 行包含两个整数 $a_i$ 和 $b_i$($1 \le a_i, b_i \le n$),表示一条从地点 $a_i$ 到地点 $b_i$ 的道路。下一行包含一个整数 $q$($0 \le q \le 1\,000\,000$),表示额外道路的数量。接下来的 $q$ 行中,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$($1 \le x_i, y_i \le n$),表示一条从地点 $x_i$ 到地点 $y_i$ 的额外道路。

城中可能存在多条连接同一对地点的道路,也可能存在连接地点与其自身的道路。市长也可能允许在已经连接的一对地点之间修建道路。已知从地点 $1$ 可以到达任何其他地点。

输出格式

第一行应输出在不修建任何额外道路时的允许起始地点数量。接下来的 $q$ 行中,第 $i$ 行应输出修建第 $i$ 条额外道路后的允许起始地点数量。

样例

样例输入 1

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

样例输出 1

3
4
4
5

说明

样例解释:原始道路布局如下:

每个地点 $2, 3, 4$ 都是允许的起始地点。如果组织者决定改变连接地点 $2$ 和 $4$ 的道路方向,则从地点 $2, 3, 4$ 中的每一个都可以规划出一条回到自身的比赛路线。组织者也可以通过同时改变连接地点 $2$ 和 $3$ 以及 $3$ 和 $4$ 的道路方向来达到同样的目的。

在修建从地点 $1$ 到地点 $3$ 的道路后,道路布局如下:

在这种情况下,地点 $2, 3, 4$ 仍然是允许的起始地点。此外,地点 $1$ 也成为了允许的起始地点。事实上,如果组织者决定改变连接地点 $1$ 和 $3$ 的道路方向,则从地点 $1$ 可以规划出一条回到地点 $1$ 的比赛路线。

在修建从地点 $4$ 到地点 $5$ 的额外道路后,道路布局如下:

在这种情况下,地点 $2, 3, 4$ 仍然是允许的起始地点。此外,地点 $5$ 也成为了允许的起始地点。只需改变连接地点 $4$ 和 $5$ 的其中一条道路的方向即可。

最后,在修建从地点 $5$ 到地点 $1$ 的额外道路后,每个地点都将是允许的起始地点。在这种情况下,不需要改变任何道路的方向。

子任务

子任务 限制 分数
1 $n, m, q \le 15$ 6
2 $n, m \le 5000, q = 0$ 15
3 $q = 0$ 30
4 无额外限制 49

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.