QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100

#14834. 隐藏排列

统计

当对一副牌反复进行固定的洗牌操作时,这副牌最终会回到其原始顺序。在此之前必须进行洗牌的次数被称为该洗牌方式下这副牌的周期。在本题中,我们考虑相反的问题:不是从一种洗牌方式开始并寻找其周期,而是对于每个可能的周期,告诉你具有该周期的牌的数量。你的任务是构造出与这些信息一致的任意一种洗牌方式。

形式化地,存在一个隐藏的排列 $f = (f_1, f_2, \dots, f_N)$,其中 $N$ 是给定的正整数。排列是一个由 $1$ 到 $N$ 的数字组成的列表,其中每个数字恰好出现一次。设 $x = x_1 x_2 \dots x_N$ 为一个二进制字符串。我们称 $f(x)$(将 $f$ 作用于 $x$)为新的二进制字符串 $x_{f_1} x_{f_2} \dots x_{f_N}$,且 $x$ 的周期是使得下式成立的最小正整数 $p$:

$$\underbrace{f(f(\dots f(x)\dots))}_{p \text{ times}} = x$$

可以证明,对于任意排列 $f$ 和任意相同长度的二进制字符串 $x$,$x$ 的周期总是存在的。换句话说,如果对 $x$ 连续应用足够多次 $f$,最终一定会变回 $x$。

给你数字 $N$,以及对于每个可能的周期 $p$,给出具有周期 $p$ 的二进制字符串的数量(在所有 $2^N$ 个可能的二进制字符串中)。你的任务是找到与给定信息相对应的任意排列 $f$,或者得出不存在此类排列的结论。

输入格式

输入包含以下内容:

  • 一行,包含整数 $N, K$($2 \le N \le 100$,$1 \le K \le 1000$),表示排列的长度和可能周期的数量。
  • 一行,包含 $K$ 个整数 $p_1, p_2, \dots, p_K$($1 \le p_i \le 10^9$)。这些是长度为 $N$ 的二进制字符串在隐藏排列下可能具有的所有周期。数字 $p_i$ 互不相同,且按升序排序。
  • 一行,包含 $K$ 个整数 $m_1, m_2, \dots, m_K$($1 \le m_i \le 2^{100}$)。这意味着有 $m_i$ 个二进制字符串的周期为 $p_i$。

注意,数字 $m_i$ 可能会非常大!

输出格式

如果不存在与给定信息相对应的排列 $f$,输出 impossible

否则,输出一行,包含 $N$ 个整数 $f_1, f_2, \dots, f_N$,即你选择的排列。请注意,该排列应恰好包含 $1$ 到 $N$ 的每个整数一次。如果存在多个解,你可以输出其中任意一个。

样例

输入样例 1

7 6
1 2 3 4 6 12
4 4 12 24 12 72

输出样例 1

2 3 1 5 6 7 4

输入样例 2

91 4
1 7 13 91
2 126 8190 2475880078570760549798240131

输出样例 2

impossible

输入样例 3

2 1
1
4

输出样例 3

1 2

说明

在第二个样例中,输入几乎对应于排列 $(2, 3, 4, \dots, 91, 1)$。唯一的错误是输入中最后一个数字的最后一位应该是 0 而不是 1。

在第三个样例中,所有 4 个二进制字符串的周期均为 1,这意味着恒等排列 $(1, 2)$ 是一个有效的答案。

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.