CFCF2179D.Blackslex and Penguin Civilization

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

企鹅是一种文明的生物,它们用排列进行交流。Blackslex 作为企鹅研究者,必须研究它们的交流方式。

对于一个给定的整数 nn,考虑 [0,1,,2n1][0, 1, \ldots, 2^n - 1] 的所有排列 ^{\text{∗}} pp。定义

S(p)=i=02n1popcount(p0 & p1 &  & pi),S(p) = \sum_{i=0}^{2^n-1} \operatorname{popcount}\bigl(p_0 \ \&\ p_1\ \&\ \cdots \ \&\ p_i\bigr),

其中 popcount(z)\operatorname{popcount}(z) 表示 zz 的二进制表示中 11 的个数(例如,popcount(5)=2\operatorname{popcount}(5)=2,因为 5=10125=101_2 二进制表示有两个 11),&\& 表示按位与运算

如果一个排列使得 S(p)S(p) 最大,则称其为“神圣排列”。请找到字典序最小^{\text{†}}的神圣排列。

^{\text{∗}} 一个长度为 nn 的排列是由 11nnnn 个互不相同的整数组成的数组,顺序任意。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是(因为 22 出现了两次),[1,3,4][1,3,4] 也不是(因为 n=3n=3,但数组中有 44)。

^{\text{†}} 两个等长数组 aabb 比较字典序时,如果在第一个不同的位置,aa 的该元素小于 bb 的对应元素,则称 aa 的字典序小于 bb

输入格式

第一行包含一个整数 tt1t161 \le t \le 16),表示测试用例的个数。

每个测试用例包含一个整数 nn1n161 \le n \le 16)。

保证所有测试用例中 2n2^n 的和不超过 2162^{16}

输出格式

对于每个测试用例,输出 2n2^n 个整数 p0,p1,,p2n1p_0, p_1, \ldots, p_{2^n-1},即所求的排列。

输入输出样例

  • 输入#1

    2
    1
    2

    输出#1

    1 0 
    3 1 0 2

说明/提示

对于第一个测试用例,有两种可能的排列。

  • p=[0,1]p = [0, 1]S(p)=0S(p) = 0
  • p=[1,0]p = [1, 0]S(p)=1S(p) = 1

对于第二个测试用例,S([3,1,0,2])=3S([3, 1, 0, 2]) = 3 是神圣排列。还有其他神圣排列,例如 p=[3,2,0,1]p = [3, 2, 0, 1],但这些不是字典序最小的。

首页