QOJ.ac

QOJ

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

#10201. Lirili Larila

Statistics

苏格拉底:告诉我,柏拉图,你是否同意我的观点:最强大的战士是那些会飞的,比如 Bombardiro Crocodillo 或 Bombombini Gusini?

柏拉图:事实并非如此。陆地战士,比如 Brr Brr Patapim 和 Tung Tung Tung Sahur,尽管不会飞,也取得了成功。

苏格拉底:我相信寻找真理的唯一方法是让战士们战斗,并据此决定结果。

柏拉图:好极了,苏格拉底,我同意这是通往真理的道路。

决定性的战斗将在一个具有 $N$ 个顶点和 $M$ 条边的连通图上进行。Lirili Larila 是一种半象半仙人掌的生物,她拥有这个图,并坚持认为它是她最喜欢的类型:仙人掌图。在本题中,仙人掌图被定义为一种简单的连通图,其中每个顶点最多属于一个环。

战斗过程如下:最初,所有飞行战士被放置在一个指定的起始顶点,所有陆地战士被放置在另一个指定的起始顶点。随着战斗的进行,战士们将他们的影响力扩散到整个图,试图征服尽可能多的顶点。最终,一个顶点要么被飞行战士征服,要么被陆地战士征服,这取决于它距离飞行战士的起始顶点更近,还是距离陆地战士的起始顶点更近。距离两个起始顶点距离相等的顶点保持未被征服状态,因为它们对双方都构成了巨大的挑战。

Lirili Larila 希望控制战斗的结果。她已经预先设定了两个正整数 $A$ 和 $B$,分别代表飞行战士和陆地战士要征服的顶点数量。请帮助这位可爱的仙人掌象为两类战士选择起始顶点,使得战斗结束时,被征服的顶点数量分别等于 $A$ 和 $B$。

此外,你必须为 $T$ 个不同的场景找到这样的选择。

输入格式

第一行包含一个正整数 $T$,表示不同场景的数量。

每个场景描述如下:

第一行包含四个正整数 $N, M, A$ 和 $B$,分别表示仙人掌图的顶点数、边数,以及飞行战士和陆地战士要征服的顶点数量。

接下来的 $M$ 行,每行包含两个整数 $a$ 和 $b$ ($1 \le a, b \le N, a \neq b$),表示图中的一条边。

给定的图保证是一个仙人掌图,即一个简单的连通图,其中每个顶点最多属于一个环。

测试数据保证总是可以找到一组有效的起始顶点。

输出格式

输出 $T$ 行,每行对应一个场景。

在第 $i$ 行,输出两个空格分隔的正整数,表示第 $i$ 个场景中为飞行战士和陆地战士选择的起始顶点。如果存在多种解,输出任意一个即可。

子任务

在所有子任务中,满足 $2 \le N \le 200\,000$ 且 $2 \le A + B \le N$。此外,所有场景的 $N$ 之和最多为 $200\,000$。

下表列出的约束条件分别适用于每个给定的 $T$ 个场景。

子任务 分值 约束条件
1 6 所有 $N$ 之和 $\le 300$。
2 8 给定图是一棵树,且所有 $N$ 之和 $\le 5000$。
3 25 给定图是一棵树。
4 13 给定图恰好有一个环,且所有 $N$ 之和 $\le 5000$。
5 17 给定图恰好有一个环,且保证存在一个解,使得两个起始顶点都在该环内。
6 8 给定图恰好有一个环。
7 11 所有 $N$ 之和 $\le 5000$。
8 12 无额外约束。

样例

样例输入 1

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

样例输出 1

4 3

说明 1

飞行战士征服了顶点 4、5 和 6,而陆地战士征服了顶点 3。顶点 1 和 2 保持未被征服。

样例输入 2

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

样例输出 2

1 6

说明 2

飞行战士征服了顶点 1、2 和 4,而陆地战士征服了顶点 5 和 6。顶点 3 保持未被征服。

样例输入 3

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

样例输出 3

4 2

说明 3

飞行战士征服了顶点 4、5 和 6,而陆地战士征服了顶点 1、2 和 3。没有未被征服的顶点。

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.