QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 2048 MB 満点: 100 難易度: [表示] コミュニケーション

#18211. 扫雷

統計

这是一个通信问题。

problem_18211_1.png

一颗危险的地雷!

小青鱼非常喜欢扫雷游戏,他非常想在 Universal Cup 总决赛期间玩这个游戏。因此,他给你一个机会来体验另一个类似扫雷的游戏,叫做 CyanSweeper。这个游戏是在一个无向连通平面图上进行的,而不是在网格上。

为了玩这个游戏,他给你一个含有 $n$ 个顶点和 $m$ 条边的平面图。顶点从 $1$ 到 $n$ 进行编号。有 $k$ 个含有地雷的特殊顶点,游戏由两个阶段组成。

第一次运行。小青鱼给你该图以及 $k$ 个地雷顶点的编号 $b_1, b_2, \dots, b_k$。你必须生成一个数组 $a_1, a_2, \dots, a_n$,满足以下条件:

  • 对于每个没有地雷的顶点 $v$,$a_v$ 必须等于 $v$ 的邻居中含有地雷的顶点个数(即标准的扫雷计数)。
  • 对于每个含有地雷的顶点 $v$,$a_v$ 可以是 $\{1, 2, \dots, k\}$ 中的任意整数,但必须满足约束条件:地雷顶点处的数值 $a_{b_1}, a_{b_2}, \dots, a_{b_k}$ 构成 $\{1, 2, \dots, k\}$ 的一个排列。

除了数组 $a$ 之外,小青鱼还要求你向第二次运行传输一个长度最多为 100 的非空二进制字符串 $s$。

第二次运行。小青鱼给你相同的图(具有相同的顶点编号)、与第一次运行中生成的完全相同的数组 $a_1, \dots, a_n$,以及传输的二进制字符串 $s$。然而,你不会被告知地雷顶点的编号。你的任务是根据图、数组 $a$ 和传输的字符串 $s$,输出地雷顶点的集合。

请编写一个程序来玩 CyanSweeper。

输入格式

输入包含多组测试数据。输入的第一行包含两个整数 $r$ ($r \in \{1, 2\}$) 和 $T$ ($1 \le T \le 10$),分别表示运行编号和测试数据组数。

对于每组测试数据:

  • 如果 $r = 1$,第一行包含三个整数 $n, m, k$ ($1 \le k \le n \le 5 \times 10^5$,$n - 1 \le m \le 10^6$)。接下来的 $m$ 行每行包含两个整数 $u$ 和 $v$ ($1 \le u, v \le n, u \neq v$),描述一条无向边。保证该图是连通的、简单的平面图。下一行包含 $k$ 个互不相同的整数 $b_1, b_2, \dots, b_k$ ($1 \le b_i \le n$),表示地雷顶点的索引。
  • 如果 $r = 2$,第一行包含两个整数 $n$ 和 $m$。接下来的 $m$ 行以相同的格式描述边。下一行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$,即第一次运行中生成的解决方案。最后一行包含第一次运行解决方案传输的二进制字符串 $s$。

保证所有测试数据的 $n$ 之和不超过 $5 \times 10^5$,所有测试数据的 $m$ 之和不超过 $10^6$。

输出格式

如果 $r = 1$,对于每组测试数据,在一行中输出用空格分隔的数组 $a_1, a_2, \dots, a_n$,并在下一行输出二进制字符串 $s$。数组必须满足上述规则,且 $s$ 必须仅由字符 01 组成,长度在 $1$ 到 $100$ 之间。

如果 $r = 2$,对于每组测试数据,输出两行。第一行包含一个整数 $k$,表示地雷的数量。第二行包含 $k$ 个互不相同的整数,对应地雷顶点的索引。你可以以任意顺序输出地雷顶点的索引。报告的集合必须与对应的第一次运行输入中的地雷集合完全一致。

测试工具

提供了一个测试工具以帮助参赛者开发和测试他们的解决方案。你可以从 DOMjudge 系统下载此工具。使用 -h 参数运行该工具可以查看如何使用它。该测试工具仅实现部分测试场景以及真实评测程序的部分功能。

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.