SP5145 DEJAVU - Déjà vu
题目描述
点击[这里](http://www.spoj.com/content/john_jones:hangzhou2008.pdf)下载比赛题目的 PDF 文件。需要解答的是其中的 D 题。请注意,SPOJ 平台上必须使用标准输入输出格式。
一台古老的机器被发现拥有 $\binom{N}{3}$ 个开关,它可以处理从 $0$ 到 $2^N - 1$ 范围内的整数。这些开关各自对应一个二进制表示中恰好有三个 1 的整数。通过开启与某些整数 $X_0, X_1, \ldots, X_{M-1}$ 相关的开关,任何输入整数 $Y$ 经机器处理后可变为 $Y \oplus X_0 \oplus X_1 \oplus \ldots \oplus X_{M-1}$(这里“$\oplus$”表示按位异或运算)。
然而,经过进一步检测,我们发现,机器由于年代久远,一些开关已损坏。现在,我们想知道是否还有办法通过开启某些开关,将输入整数 $S$ 转换为 $T$,并且如果可以,需要开启的最少开关数是多少。
**注意:简单粗暴的算法可能无法解决这个问题。**
输入格式
输入文件中包含多个测试用例。
每个测试用例以两个整数 $N$ 和 $M$ 开始($1 \le N \le 20$),表示位的数量和可用的开关数量。之后的一行包含两个整数 $S$ 和 $T$($0 \le S, T < 2^N$),接下来的 $M$ 行中,每行包含一个整数 $V_i$ (表示第 $i$ 个开关的值,$0 \le V_i < 2^N$)。
相邻两个测试用例之间用一个空行隔开。当出现 $N = 0$ 且 $M = 0$ 时,表示输入结束,这种情形不需要处理。
输出格式
针对每个测试用例,输出一个整数,表示最少需要的开关数。如果转换不可行,则输出「Impossible」(不带引号)。
**本翻译由 AI 自动生成**