CF1975F.Set

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

定义有限自然数集合 T⊆{0,1,2,…}T \subseteq \{0,1,2,\ldots\} 的二进制编码为 f(T)=∑i∈T2if(T) = \sum\limits_{i \in T} 2^i。例如,f({0,2})=20+22=5f(\{0,2\}) = 2^0 + 2^2 = 5,f({})=0f(\{\}) = 0。注意,ff 是从所有这样的集合到所有非负整数的双射,因此 f−1f^{-1} 也是定义良好的。

给定一个整数 nn 以及 2n−12^n-1 个集合 V1,V2,…,V2n−1V_1,V_2,\ldots,V_{2^n-1}。

请找出所有满足以下约束的集合 SS:

  • S⊆{0,1,…,n−1}S \subseteq \{0,1,\ldots,n-1\},注意 SS 可以为空集。
  • 对于所有非空子集 T⊆{0,1,…,n−1}T \subseteq \{0,1,\ldots,n-1\},都有 ∣S∩T∣∈Vf(T)|S \cap T| \in V_{f(T)}。

由于输入输出规模较大,输入和输出均以集合的二进制编码形式给出。

输入格式

第一行包含一个整数 nn(1≤n≤201 \leq n \leq 20)。

第二行包含 2n−12^n-1 个整数 v1,v2,…,v2n−1v_1,v_2,\ldots,v_{2^n-1}(0≤vi<2n+10 \leq v_i < 2^{n+1}),表示集合 ViV_i 的二进制编码,其中 Vi=f−1(vi)V_i = f^{-1}(v_i)。

输出格式

第一行输出一个整数 kk,表示满足条件的 SS 的个数。

接下来的 kk 行,每行输出一个 f(S)f(S),按升序排列所有可能的 SS。

输入输出样例

  • 输入#1

    3
    15 15 15 15 15 15 12

    输出#1

    4
    3
    5
    6
    7
  • 输入#2

    5
    63 63 63 63 6 63 63 63 63 63 63 5 63 63 63 63 63 63 8 63 63 63 63 2 63 63 63 63 63 63 63

    输出#2

    1
    19

说明/提示

在第一个测试用例中,一个可能的 SS 是 f−1(3)={0,1}f^{-1}(3) = \{0,1\}。所有非空子集 T⊆{0,1,2}T \subseteq \{0,1,2\} 及其对应的 ∣S∩T∣|S \cap T|、f(T)f(T) 和 Vf(T)V_{f(T)} 如下:

T∣S∩T∣f(T)Vf(T){0}11{0,1,2,3}{1}12{0,1,2,3}{2}04{0,1,2,3}{0,1}23{0,1,2,3}{0,2}15{0,1,2,3}{1,2}16{0,1,2,3}{0,1,2}27{2,3}\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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页