CF1975F Set
题目描述
定义有限自然数集合 $T \subseteq \{0,1,2,\ldots\}$ 的二进制编码为 $f(T) = \sum\limits_{i \in T} 2^i$。例如,$f(\{0,2\}) = 2^0 + 2^2 = 5$,$f(\{\}) = 0$。注意,$f$ 是从所有这样的集合到所有非负整数的双射,因此 $f^{-1}$ 也是定义良好的。
给定一个整数 $n$ 以及 $2^n-1$ 个集合 $V_1,V_2,\ldots,V_{2^n-1}$。
请找出所有满足以下约束的集合 $S$:
- $S \subseteq \{0,1,\ldots,n-1\}$,注意 $S$ 可以为空集。
- 对于所有非空子集 $T \subseteq \{0,1,\ldots,n-1\}$,都有 $|S \cap T| \in V_{f(T)}$。
由于输入输出规模较大,输入和输出均以集合的二进制编码形式给出。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 20$)。
第二行包含 $2^n-1$ 个整数 $v_1,v_2,\ldots,v_{2^n-1}$($0 \leq v_i < 2^{n+1}$),表示集合 $V_i$ 的二进制编码,其中 $V_i = f^{-1}(v_i)$。
输出格式
第一行输出一个整数 $k$,表示满足条件的 $S$ 的个数。
接下来的 $k$ 行,每行输出一个 $f(S)$,按升序排列所有可能的 $S$。
说明/提示
在第一个测试用例中,一个可能的 $S$ 是 $f^{-1}(3) = \{0,1\}$。所有非空子集 $T \subseteq \{0,1,2\}$ 及其对应的 $|S \cap T|$、$f(T)$ 和 $V_{f(T)}$ 如下:
\[
\begin{aligned}
T &\quad |S\cap T| &\quad f(T) &\quad V_{f(T)} \\
\{0\} &\quad 1 &\quad 1 &\quad \{0,1,2,3\} \\
\{1\} &\quad 1 &\quad 2 &\quad \{0,1,2,3\} \\
\{2\} &\quad 0 &\quad 4 &\quad \{0,1,2,3\} \\
\{0,1\} &\quad 2 &\quad 3 &\quad \{0,1,2,3\} \\
\{0,2\} &\quad 1 &\quad 5 &\quad \{0,1,2,3\} \\
\{1,2\} &\quad 1 &\quad 6 &\quad \{0,1,2,3\} \\
\{0,1,2\} &\quad 2 &\quad 7 &\quad \{2,3\} \\
\end{aligned}
\]
由 ChatGPT 4.1 翻译