传统题 1000ms 256MiB

cgy的鸡腿饼

该比赛已结束,您无法在比赛模式下提交该题目。您可以点击“在题库中打开”以普通模式查看和提交本题。

题目描述

某天晚上,cgy又双叒叕想吃鸡腿饼了,于是发短信让小马帮忙带n个鸡腿饼,这n个鸡腿饼的编号是从00n1n-1的整数排列 p,这n个鸡腿饼的成本为所有相邻对鸡腿饼编号的位Xor的最大值,即总成本为

$\underset{1 \leq i \leq n-1}{\text{max}}p_i⊕p_{i+1}$

找出长度为n且成本最小的任意一系列鸡腿饼编号 p

排列

在该问题中,置换是由从 0 到 n−1 的任意顺序的 n 不同整数组成的数组。 例如, [2,3,1,0,4]是一个排列,但 [1,0,1]不是一个排列(1在数组中出现了两次)并且 [1,0,3]也不是排列( n=3 ,但 3 在数组中)

异或

异或是一种二进制的位运算,符号以 XOR 或 ^ 表示。 相同为0,不同为1,即

1 ^ 1 = 0

0 ^ 0 = 0

1 ^ 0 = 1

输入

一行包含一个整数 n(2n2e5)n( 2≤n≤2e5),即鸡腿饼的数量。

输出

打印n n 整数p1p2pn p1,p2,…,pn ---具有最小成本的鸡腿饼编号序列。 如果有多个答案,请打印其中任何一个。

样例1

2
0 1

样例2

3
2 0 1

样例3

5
3 2 1 0 4

样例4

10
4 6 3 2 0 8 9 1 7 5

解释

注意

对于 n=2n = 2 ,有 22 个鸡腿饼编号序列:

  • [0,1][0, 1] —成本为 01=10 \oplus 1 = 1

  • [1,0][1, 0] —成本为 10=11 \oplus 0 = 1

对于 n=3n = 3 ,有 66 个鸡腿饼编号序列:

  • [0,1,2][0, 1, 2] —成本为 max(01,12)=max(1,3)=3\max(0 \oplus 1, 1 \oplus 2) = \max(1, 3) = 3

  • [0,2,1][0, 2, 1] —成本为 max(02,21)=max(2,3)=3\max(0 \oplus 2, 2 \oplus 1) = \max(2, 3) = 3

  • [1,0,2][1, 0, 2] —成本为 max(10,02)=max(1,2)=2\max(1 \oplus 0, 0 \oplus 2) = \max(1, 2) = 2

  • [1,2,0][1, 2, 0] —成本为 max(12,20)=max(3,2)=3\max(1 \oplus 2, 2 \oplus 0) = \max(3, 2) = 3

  • [2,0,1][2, 0, 1] —成本为 max(20,01)=max(2,1)=2\max(2 \oplus 0, 0 \oplus 1) = \max(2, 1) = 2

  • [2,1,0][2, 1, 0] -成本为 max(21,10)=max(3,1)=3\max(2 \oplus 1, 1 \oplus 0) = \max(3, 1) = 3

24级第二次新生赛

未参加
状态
已结束
规则
ACM/ICPC
题目
10
开始于
2025-3-15 14:05
结束于
2025-3-15 17:05
持续时间
3 小时
主持人
参赛人数
28