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 翻译