QOJ.ac

QOJ

时间限制: 6.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#10221. 节点可达吗?

统计

给定一个包含 $N$ 个节点(编号为 $1$ 到 $N$)和 $M$ 条有向边的有向无环图。你的任务是回答 $Q$ 个关于节点间可达性的询问。对于每个询问,你将得到两个节点 $U$ 和 $V$。

  • 如果节点 $V$ 可以通过现有的路径(有向边)从节点 $U$ 到达,则输出 $0$,因为不需要额外的道路。
  • 如果 $V$ 不能从 $U$ 到达,你可以选择在图中任意两个节点之间建立一条临时边,使得 $V$ 可以从 $U$ 到达。

在回答完询问后,这条新修的道路(如果有)会被销毁。

你需要确定在需要的情况下,修建这条道路的最小代价。在节点 $X$ 和节点 $Y$ 之间修建道路的代价定义为 $|X - Y|$,即它们节点编号的绝对差。

输入格式

第一行包含一个整数 $T(1 \le T \le 100)$。每个测试用例的第一行包含两个整数 $N(1 \le N \le 10^4)$ 和 $M(1 \le M \le 8 \cdot 10^4)$,其中 $N$ 表示图中的节点数,$M$ 表示有向边的数量。

接下来的 $M$ 行,每行包含两个整数 $U$ 和 $V(1 \le U, V \le N, U \neq V)$,表示一条从 $U$ 到 $V$ 的有向边。输入下一行包含一个整数 $Q(1 \le Q \le 10^6)$,表示询问的数量。接下来的 $Q$ 行,每行包含两个整数 $U$ 和 $V(1 \le U, V \le N)$,表示需要处理的询问。

保证所有测试用例中 $N$ 的总和不超过 $10^5$,$M$ 的总和不超过 $10^5$,$Q$ 的总和不超过 $10^6$。

输出格式

对于每个测试用例,处理所有的 $Q$ 个询问。对于每个询问,在单独的一行中输出一个整数,表示该询问的答案。

样例

输入 1

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

输出 1

1
1

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.