QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 1024 MB 總分: 100

#4727. DEL13

统计

双极怪物又出动了!他盯上了宁静的“线之城”(Line city)。顾名思义,“线之城”由 $N$ 个编号为 $1, 2, 3, \dots, N$ 的街区组成,它们从左到右排成一行。

双极怪物会对城镇进行双极操作。一次操作包括选择一个尚未被摧毁且不是当前最左侧或最右侧的街区 $X$,目的是摧毁它。然而,由于怪物是双极的,在选择 $X$ 后,他会立即摧毁 $X$ 左侧和右侧紧邻的两个尚未被摧毁的街区。

换句话说,假设在某一时刻,尚未被摧毁的街区按从左到右的顺序为 $1 \le i_1 < i_2 < i_3 < \dots < i_K \le N$。$X$ 必须是这些街区中的一个,但不能是最左侧或最右侧的。因此,$X = i_j$,其中 $1 < j < K$。对于这个 $X$ 的选择,怪物将摧毁索引为 $i_{j-1}$ 和 $i_{j+1}$ 的街区。

我们的怪物并不像你想象的那么邪恶——他的两个人格并不想仅仅为了好玩而摧毁街区,他们想让父亲感到骄傲。怪物知道父亲希望看到的最终街区配置,因此他希望通过选择 $X$ 来使最终剩余的街区配置令父亲满意。父亲最喜欢的配置也是 $N$ 个城市的一个子序列 $1 \le p_1 < p_2 < p_3 < \dots < p_Q \le N$。

有时,父母的期望有点不切实际,怪物的情况也是如此!甚至不能保证通过给定的操作(这是怪物在双极性下摧毁城市的唯一方式)就能达到所需的街区子序列。这就是为什么怪物想知道他是否可以通过适当的选择来达到给定的子序列。不仅如此,正如你可能猜到的,如果可能的话,他还想知道实现这一目标的方法。

你需要帮助怪物让他的父亲感到骄傲,因为他已经经历得够多了(做一个双极怪物很难)。他会给你一份类似于“线之城”的城市列表,以及他父亲希望为每个城市实现的配置(配置和 $N$ 的值可能因城市而异)。对于每个城市,你需要告诉怪物他是否能执行他的计划,如果可以,该如何执行。

输入格式

输入的第一行包含一个数字 $T$ —— 怪物为了让父亲骄傲而考虑改变的城市数量。 接下来的 $2T$ 行包含城市描述和怪物父亲期望的最终配置,格式如下: $N \ Q$ $p_1, p_2, \dots, p_Q$

输出格式

对于每个城市,你需要在一行中打印一个数字 $R$($-1 \le R \le N$)。$R$ 代表怪物为了达到给定的街区子序列所需要进行的操作次数,如果无法实现,则 $R$ 应为 $-1$。如果能够实现怪物的梦想,则在第二行中,按顺序用空格分隔打印怪物应该做出的 $R$ 次 $X$ 的选择。如果有多种选择 $X$ 的方式,你可以打印其中任何一种。

评分

你的输出按以下方式评分: 对于每个测试点,你将获得一个百分比,该百分比将用于计算你在子任务部分中解释的得分。

无论你是否只想回答“是否可能”的问题,都必须遵守格式。也就是说,$-1 \le R \le N$ 必须成立,并且当 $R$ 不为 $-1$ 时,$R$ 后面应紧跟一行,包含恰好 $R$ 个 $1$ 到 $N$ 之间的整数。如果格式不符合,即使整个测试中只有一个城市不符合,你也将获得 0%。令 $R=0$ 并打印一个空行符合格式,可用于仅获取“是否可能”问题的分数(如下所述)。

如果你的答案在整个测试中即使只有一个城市出错,你将获得 0%。 如果你的答案始终正确(且你给出的移动步骤不足以获得满分),你将获得 40% 的分数。

如果你正确回答了所有“是否可能”的问题,你还可以为你提供的移动步骤获得分数: 如果对于测试中的任何城市,按顺序执行你给出的移动步骤会导致无效操作(选择了一个已经被摧毁的城市,或者选择了在选择时处于最左侧或最右侧的未摧毁城市),你将不会获得所打印移动步骤的任何分数,而仅根据正确回答“是否可能”问题来评分。 如果对于测试中的某个城市,在执行你给出的移动步骤后,最终的街区配置与期望的不符,你将不会获得所打印移动步骤的任何分数,而仅根据正确回答“是否可能”问题来评分。 * 如果你的移动步骤全部有效并导致了正确的最终配置,你将获得 100% 的分数。

数据范围

  • 对于测试中的任何城市,$N \le 100000$
  • 一个测试中 $N$ 的总和 $\le 200000$

子任务

子任务包含多个测试点,你的得分计算公式为 $\frac{P}{100} \cdot S$,其中 $S$ 是分配给该子任务的分数,$P$ 是你在该子任务包含的每个独立测试点中获得的最低百分比。

子任务 分数 附加输入约束
1 15 $1 \le T \le 512$,且测试中所有城市具有相同的 $N$,其中 $1 \le N \le 9$
2 15 $1 \le T \le 2500$,且测试中所有城市具有相同的 $N$,其中 $1 \le N \le 18$
3 15 $1 \le T \le 700$,且对于测试中所有城市,目标配置最多有一个孤立街区——即最多存在一个 $x$,使得 $x$ 是最终配置的一部分,但 $x-1$ 和 $x+1$ 都不是
4 25 $1 \le T \le 80$ 且 $1 \le N \le 100$
5 30 $1 \le T \le 200$

样例

输入 1

4
5 1
3
7 3
1 5 7
7 3
1 2 7
10 4
1 2 5 10

输出 1

2
3 3
2
3 5
-1
3
8 5 5

说明 1

对于第 4 个城市,每次移动后剩余的城市为: 初始:1 2 3 4 5 6 7 8 9 10 第一次移动后:1 2 3 4 5 6 8 10 第二次移动后:1 2 3 5 8 10 第三次移动后:1 2 5 10

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.