CF1174D Ehab and the Expected XOR Problem

题目描述

给定两个整数 $n$ 和 $x$,请构造一个满足以下条件的数组: - 对于数组中的任意元素 $a_i$,有 $1 \le a_i < 2^n$; - 不存在非空子段,其按位异或值等于 $0$ 或 $x$; - 使数组的长度 $l$ 最大。 如果序列 $b$ 可以通过从序列 $a$ 的开头删除若干(可能为零或全部)元素,并从末尾删除若干(可能为零或全部)元素得到,则称 $b$ 是 $a$ 的一个子段。

输入格式

一行包含两个整数 $n$ 和 $x$($1 \le n \le 18$,$1 \le x < 2^{18}$)。

输出格式

第一行输出数组的长度 $l$。 如果 $l$ 为正数,第二行输出 $l$ 个用空格分隔的整数 $a_1, a_2, \dots, a_l$($1 \le a_i < 2^n$),表示数组 $a$ 的元素。 如果有多组解,输出任意一组均可。

说明/提示

在第一个样例中,所有子段的异或值为 $\{6,7,4,1,2,3\}$。 由 ChatGPT 4.1 翻译