AT_pakencamp_2023_day1_m + and Xor
题目描述
给定一个正整数 $N$。请你求出一个长度为 $N$ 的 **$(1,2,\ldots,N)$** 的排列 $p$,使得下式的值最大:
- $(p_1 + 1)\oplus (p_2 + 2)\oplus \ldots \oplus (p_N + N)$
其中,$\oplus$ 表示按位异或(XOR)运算。
按位异或(XOR)运算指的是对于非负整数 $A,B$,$A\oplus B$ 定义如下:
- $A\oplus B$ 的二进制表示中,每一位 $2^k$($k\geq 0$)上的数值,若 $A,B$ 在 $2^k$ 位上恰有一个是 $1$,则结果位为 $1$,否则为 $0$。
例如,$3\oplus 5 = 6$(二进制表示为:$011\oplus 101 = 110$)。
输入格式
输入为标准输入,格式如下:
> $N$
输出格式
请你输出一组满足题意的排列 $p$,以空格分隔,输出 $1$ 行。
如果有多组满足条件的答案,可以输出其中任意一组。
说明/提示
### 样例解释 1
$(2+1)\oplus (1+2)\oplus (3+3) = 6$。无法得到比 $6$ 更大的值,所以输出此结果。
### 约束条件
- $1 \leq N \leq 2\times 10^5$
- 输入均为整数。
由 ChatGPT 5 翻译