QOJ.ac

QOJ

実行時間制限: 4 s メモリ制限: 1024 MB 満点: 100

#3501. 监狱

統計

在 JOI 王国,IOI 监狱的安保工作受到严格管控。IOI 监狱共有 $N$ 个房间,编号为 $1$ 到 $N$。有 $N-1$ 条通道连接这些房间。第 $i$ 条通道 ($1 \le i \le N-1$) 双向连接房间 $A_i$ 和房间 $B_i$。通过若干条通道,可以从任意一个房间到达其他任意房间。

IOI 监狱里有 $M$ 名囚犯。每名囚犯都有一个“ID 号”,是一个 $1$ 到 $M$ 之间的整数。囚犯 $j$ ($1 \le j \le M$) 的卧室是房间 $S_j$,工作间是房间 $T_j$。一名囚犯可能会在另一名囚犯的卧室工作。然而,没有两名囚犯共用同一个卧室,也没有两名囚犯共用同一个工作间。

一天早上,这 $M$ 名囚犯必须从他们的卧室移动到他们的工作间。APIO 先生是 IOI 监狱的典狱长。他将向囚犯下达如下移动指令:

指令:选择一名囚犯,将该囚犯从当前房间移动到与其通过通道相连的另一个房间。为了避免囚犯之间进行交流,不允许将囚犯移动到已有其他囚犯停留的房间。

为了尽早开始工作,APIO 先生想知道是否可以下达指令,使得每名囚犯经过的房间都不超过一次(这意味着每名囚犯都走最短路径)。

请编写一个程序,在给定 IOI 监狱的房间和通道信息以及囚犯信息的情况下,判断是否可以移动囚犯,使得每名囚犯都走最短路径。

输入格式

一个测试用例包含 $Q$ 个场景,编号为 $1$ 到 $Q$。每个场景的具体数值如下。关于这些数值的范围,请参阅“数据范围”。

  • IOI 监狱的房间数 $N$。
  • IOI 监狱的通道信息 $(A_1, B_1), (A_2, B_2), \dots, (A_{N-1}, B_{N-1})$。
  • IOI 监狱的囚犯数 $M$。
  • 囚犯的卧室和工作间信息 $(S_1, T_1), (S_2, T_2), \dots, (S_M, T_M)$。

输入数据的格式如下。所有给定的值均为整数。

$Q$ (场景 1 的输入) (场景 2 的输入) $\vdots$ (场景 $Q$ 的输入)

每个场景的输入数据格式如下。详情请参阅“样例”。

$N$ $A_1 \ B_1$ $A_2 \ B_2$ $\vdots$ $A_{N-1} \ B_{N-1}$ $M$ $S_1 \ T_1$ $S_2 \ T_2$ $\vdots$ $S_M \ T_M$

输出格式

向标准输出写入 $Q$ 行。第 $k$ 行 ($1 \le k \le Q$) 应包含以下内容:

  • 如果场景 $k$ 可以移动囚犯,则输出 Yes
  • 如果场景 $k$ 不可以移动囚犯,则输出 No

数据范围

  • $1 \le Q \le 1\,000$
  • $2 \le N \le 120\,000$
  • $1 \le A_i < B_i \le N$ ($1 \le i \le N-1$)
  • $2 \le M \le N$
  • $1 \le S_j \le N$ ($1 \le j \le M$)
  • $1 \le T_j \le N$ ($1 \le j \le M$)
  • $S_1, S_2, \dots, S_M$ 互不相同。
  • $T_1, T_2, \dots, T_M$ 互不相同。
  • $S_j \neq T_j$ ($1 \le j \le M$)
  • 通过若干条通道,可以从任意一个房间到达其他任意房间。
  • 所有 $Q$ 个场景的 $N$ 之和小于或等于 $120\,000$。

子任务

  1. (5 分) $A_i = i, B_i = i+1$ ($1 \le i \le N-1$)。
  2. (5 分) $Q \le 20, N \le 250, M = 2$。
  3. (16 分) $Q \le 20, N \le 250, M \le 6$。
  4. (28 分) $Q \le 20, N \le 250, M \le 100$。
  5. (12 分) $Q \le 20, M \le 500$。
  6. (11 分) 通过最多 20 条通道,可以从任意一个房间到达其他任意房间。
  7. (23 分) 无附加限制。

样例

样例输入 1

1
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
2
3 4
4 8

样例输出 1

Yes

样例输入 2

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

样例输出 2

Yes
No

样例输入 3

3
3
1 2
2 3
2
2 1
3 2
7
1 2
2 3
3 4
4 5
5 6
6 7
3
1 3
4 2
2 5
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
4
1 5
2 6
3 7
4 8

样例输出 3

Yes
No
Yes

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.