#P12687. [集训队互测2025day13]格雷码

[集训队互测2025day13]格雷码

题目描述

通常,人们习惯将所有 nn 位二进制串按照字典序排列,例如所有 22 位二进制串按字典序从小到大排列为:00011011

格雷码(Gray Code)是一种特殊的 nn 位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别地,第一个串与最后一个串也算作相邻。

cic_i 表示第 ii 位作为相邻两个串的不同位的次数。

所有 22 位二进制串按格雷码排列的一个例子为:00011110。对应的 cc 序列为:c1=2c_1=2c2=2c_2=2

nn 位格雷码不止一种,你想求出 cc 序列的极差最小的一种。特别的,如果有多种答案,输出任意一种。

输入格式

仅一行一个正整数 nn,意义见题目描述。

输出格式

仅一行 2n2^n 个正整数。1i<2n\forall 1 \le i < 2^n,第 ii 个正整数表示你构造的第 ii 个二进制串和第 i+1i+1 个二进制串不同的位。第 2n2^n 个正整数表示第一个串与最后一个串不同的位。

样例

样例输入 1
2
样例输出 1
1 2 1 2
样例输入 2
3
样例输出 2
1 3 1 2 1 3 1 2

数据范围与约定

本题采用自定义校验器(Special Judge)评测。

本题共 2525 个测试点,每个测试点分值相同。第 TT 个测试点满足 n=Tn = T

对每个测试点,评分方式如下:

  • 如果你输出的方案是 nn 位格雷码且 cc 序列的极差最小,得到 100%100\% 的该测试点分数;
  • 如果你输出的方案是 nn 位格雷码但 cc 序列极差并非最小,得到 20%20\% 的该测试点分数;
  • 否则,得到 0%0\% 的该测试点分数。

提示

本题输出数据较大,请使用较快的输出方式。