#P14502. [NCPC 2025] Hidden Permutation
[NCPC 2025] Hidden Permutation
Description
当对一副牌反复应用某种固定的洗牌方式时,这副牌最终会回到其原始顺序。将洗牌方式需要应用的次数称为该洗牌方式下这副牌的 周期(period)。在本题中,我们考虑的是逆问题:我们并非给定洗牌方式并求其周期,而是给定每一种可能的周期,各有多少副牌具有该周期。你的任务是构造任意一个与这些信息一致的洗牌方式。
形式化地,存在一个隐藏排列 ,其中 是给定的正整数。排列是一个包含 到 的数字且每个数字恰好出现一次的列表。令 为一个二进制字符串。我们定义 (即对 应用 )为新的二进制字符串 ;并且定义 的 周期 为最小的正整数 ,使得:
$$\underbrace{f(f(\cdots f(x)\cdots))}_{p\ \text{次}} = x.$$可以证明,对于任意排列 与任意同长度的二进制字符串 , 的周期一定存在。换句话说,如果你对 应用足够多次 ,最终总会回到 。
你将得到数字 ,以及对每个可能的周期 ,有多少个(在全部 个可能的二进制字符串中)二进制字符串的周期为 。你的任务是找到一个与这些信息一致的排列 ,或者得出不存在这样的排列。
Input Format
输入包含:
- 一行两个整数 , (, ),表示排列的长度以及可能的周期数量。
- 一行包含 个整数 ()。这些是对于隐藏排列而言,长度为 的二进制字符串所有可能出现的周期。所有 互不相同,且已按升序排列。
- 一行包含 个整数 ()。其中 表示周期为 的二进制字符串数量。
注意:数字 的大小可能非常大!
Output Format
如果不存在任何排列 能与给定信息对应,则输出 impossible。
否则输出一行,包含 个整数 ,即你选择的排列。排列必须包含 到 且每个数字恰好出现一次。若存在多个合法解,你可以输出任意一个。
7 6
1 2 3 4 6 12
4 4 12 24 12 72
2 3 1 5 6 7 4
91 4
1 7 13 91
2 126 8190 2475880078570760549798240131
impossible
2 1
1
4
1 2
Hint
在第二个样例中,输入几乎对应于排列 。唯一的错误是输入中最后一个数字的末位应为 而不是 。
在第三个样例中,全部 个二进制字符串的周期都是 ,因此恒等排列 是一个合法答案。
翻译由 ChatGPT-5 完成
京公网安备 11011102002149号