#P7949. [✗✓OI R1] 左方之地

[✗✓OI R1] 左方之地

题目背景

后记中将会详细描述帅神左方之地为何能成为「魔禁六帅」之首。

如果你很奇怪题目名称里面为什么没有前方之风,那你可能应该去看看 div.2。

但在此之前,你需要做一道构造题。

题目描述

给你一个自然数 nn 和一个自然数参数 kk,你需要构造一个长度为 2n2^n 的序列 aa,满足 [0,2n)[0,2^n) 间的所有整数恰好出现一次,并且 i[2,2n]\forall i\in[2,2^n]popcount(aiai1)=k\operatorname{popcount}(a_i \oplus a_{i-1})=k
其中 popcount(x)\operatorname{popcount}(x) 表示 xx 在二进制下 11 的个数,\oplus 表示按位异或运算。

若有解则输出 1 并输出这个序列,否则输出 0

输入格式

一行两个整数 n,kn,k,意义同题目描述。

输出格式

第一行输出一个整数 0 或者 1,其中 0 代表不存在这样的序列,而 1 代表存在这样的序列。
如果第一行输出的是 1,接下来一行输出 2n2^n 个整数,表示你构造的序列。如果有多个合法的序列,输出任意一个。

4 3
1
0 14 3 13 6 8 5 11 12 2 15 1 10 4 9 7
4 2
0

提示

本题采用 Special Judge,子任务评测

对于 100%100\% 的数据,保证 1n,k201\le n, k \le 20

子任务编号 nn kk 子任务总分 依赖子任务
0 4\le 4 5
1 8\le 8 25 Subtask 0
2 =1=1 10
3 =n1=n-1 15
4 45 Subtask 0~3