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