比赛传送门:Codeforces Round 1075 Div 2。
ABC1 赛时切了。
C2 题解
首先要会 C1 的构造,令 \(p_{n}=1\),然后 \(p_i=1\oplus i,1<i<n\),若 \(n\) 为奇数则 \(p_1=n-1\) 否则 \(p_1=n\)。
显然若 \(n\) 为奇数,构造显然成立,对于 \(n\) 为偶数,令 \(x\) 为 \(n\) 减去二进制最高位的值,将 \(p_1\) 于 \(p_x\) 交换即可。
注意当 \(n=2^k\) 时显然无解。