CF2246A farmpiggie and Subset Sum

题目描述

对于一个偶数长度的排列 $p$,你可以进行如下操作: - 初始化计数器 $c=0$。 - 对于每个 $i$ 从 $1$ 到 $n$,可以选择将 $i \cdot p_i$ 加到 $c$ 上,或者将 $i \cdot p_i$ 从 $c$ 中减去,或者什么都不做。 令计数器的最终值为 $c_{\mathrm{final}}$。形式化地,对于每个 $i \in \{1,\ldots,n\}$,可以选取 $S_i = \{-i \cdot p_i, 0, i \cdot p_i\}$ 中的某个 $x_i$,并令 $c_{\mathrm{final}} = \sum_{i = 1}^{n}x_i$。 给定一个偶数 $n$,请构造一个长度为 $n$ 的排列,使得无论操作怎么选,$c_{\mathrm{final}}$ 都不可能等于 $1$。 $^{\ast}$ 长度为 $n$ 的排列是一个恰好包含 $1$ 到 $n$ 的不同整数的数组(顺序任意)。例如,$[2,3,1,5,4]$ 是排列,而 $[1,2,2]$ 不是排列($2$ 出现两次),$[1,3,4]$ 也不是排列($n=3$ 但有 $4$ 出现)。

输入格式

每个测试点包含多个测试用例。第一行包含测试用例个数 $t$,$(1 \le t \le 25)$。接下来每个测试用例一行,包含一个偶数 $n (2 \le n \le 50)$,代表所需排列的长度。

输出格式

对于每个测试用例,输出 $n$ 个整数 $p_1, \ldots, p_n\, (1 \le p_i \le n)$,表示满足条件的排列。 如果存在多个解,输出任意一个均可。

说明/提示

在第一个测试用例中,输出的排列为 $[2,1]$。计数器的 $9$ 种操作方式如下: 1. $0 \xrightarrow{+2 \cdot 1} 2 \xrightarrow{+0} 2$ 2. $0 \xrightarrow{+0} 2 \xrightarrow{+1 \cdot 2} 2$ 3. $0 \xrightarrow{-2 \cdot 1} -2 \xrightarrow{+0} -2$ 4. $0 \xrightarrow{+0} 2 \xrightarrow{-1 \cdot 2} -2$ 5. $0 \xrightarrow{-2 \cdot 1} -2 \xrightarrow{+1 \cdot 2} 0$ 6. $0 \xrightarrow{+2 \cdot 1} 2 \xrightarrow{-1 \cdot 2} 0$ 7. $0 \xrightarrow{-2 \cdot 1} -2 \xrightarrow{-1 \cdot 2} -4$ 8. $0 \xrightarrow{+2 \cdot 1} 2 \xrightarrow{+1 \cdot 2} 4$ 9. $0 \xrightarrow{+0} 0 \xrightarrow{+0} 0$ 没有任何一种情况最终为 $1$,因此该排列满足条件。可以证明,第二个测试用例的输出也满足条件。但排列 $[1,2,3,4]$ 不合法,因为存在如下过程: $$ 0 \xrightarrow{+1 \cdot 1} 1 \xrightarrow{+0} 1 \xrightarrow{+0} 1 \xrightarrow{+0} 1 $$ 最终 $c=1$。 由 ChatGPT 5 翻译