CF1034E Little C Loves 3 III
题目描述
小 C 非常喜欢数字「3」。他喜欢所有与 3 有关的事物。
现在他对如下问题产生了兴趣:
有两个长度为 $2^n$ 的整数数组 $a_0,a_1,\ldots,a_{2^n-1}$ 和 $b_0,b_1,\ldots,b_{2^n-1}$。
任务是对于每个 $i\ (0 \leq i \leq 2^n-1)$,计算 $c_i = \sum a_j \cdot b_k$(其中 $j|k=i$ 且 $j\&k=0$,这里「$|$」表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)、「$\&$」表示[按位与运算](https://en.wikipedia.org/wiki/Bitwise_operation#AND))。
令人惊奇的是,可以证明恰好有 $3^n$ 个三元组 $(i,j,k)$ 满足 $j|k=i$,$j\&k=0$ 且 $0 \leq i,j,k \leq 2^n-1$。因此小 C 想要优雅地解决这个与 $3$ 密切相关的优秀问题。
请你帮助他计算所有的 $c_i$。小 C 非常喜欢 $3$,所以他只想知道每个 $c_i\&3$ 的值。
输入格式
第一行包含一个整数 $n\ (0 \leq n \leq 21)$。
第二行包含 $2^n$ 个 $[0,3]$ 范围内的整数,且没有空格——第 $i$ 个数字是 $a_{i-1}$。
第三行包含 $2^n$ 个 $[0,3]$ 范围内的整数,且没有空格——第 $i$ 个数字是 $b_{i-1}$。
输出格式
输出一行,包含 $2^n$ 个 $[0,3]$ 范围内的整数,且没有空格——第 $i$ 个数字是 $c_{i-1}\&3$。(显然 $c_i\&3$ 一定在 $[0,3]$ 范围内。)
说明/提示
由 ChatGPT 4.1 翻译