如果您能看懂下列提示,请先尝试去做一下题目,别着急看正式的题解
- 奇偶性( \(n\) 是奇数还是偶数)很重要。
- 交换两只相邻的猫,使它们都保持在原来的位置附近,并改变它们的位置。
- 如果 \(n\) 是偶数,最佳距离是 \(n\) ,如果 \(n\) 是奇数,最佳距离是 \(n + 1\) 。
有两种情况。
- 如果 \(n\) 是偶数,输出
[2,1,4,3,6,5...n,n-1]
。形式上,你每隔一对相邻元素就交换一次。这是最优的,因为总的距离是n,它必须是最小的,因为一只猫的距离必须 \(\geq 1\)。 - 如果 \(n\) 是奇数,首先打印
[3,1,2]
,然后解决剩余元素的偶数情况。这是最优的,因为距离是 \(n+1\) ,这必须是最小的,因为 \(n\) 的距离是不可能实现的。
code:
for _ in range(int(input())):
n=int(input())
a=[i for i in range(1,n+1)]
for i in range(0,n-1,2):
a[i],a[i+1]=a[i+1],a[i]
if(n%2!=0):
a[n-2],a[n-1]=a[n-1],a[n-2]
print(*a)