CF2091C.Combination Lock
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 IT Campus "NEIMARK" 中,有几个开发重大编程竞赛题目的绝密房间。要进入其中一个房间,必须通过选择正确的密码来解锁一个圆形锁。该密码每天更新一次。
今天的密码是一个从 1 到 n 的排列$$∗$$,且满足其每个循环位移$$†$$中恰好有一个固定点。也就是说,在每一个循环位移中,存在且仅存在一个元素,其值等于它在排列中的位置。
请输出任意一个满足此条件的有效排列。请注意,有效的排列可能不存在,此时请输出 −1。
$^{\text{∗}}$$$排列的定义是一个长度为 $n$ 的序列,包含从 $1$ 到 $n$ 的整数,且每个数字恰好出现一次。例如,$(2\ 1\ 3)$、$(1)$、$(4\ 3\ 1\ 2)$ 是排列;而 $(1\ 2\ 2)$、$(3)$、$(1\ 3\ 2\ 5)$ 不是排列。 $$$^{\text{†}}$$$数组的循环位移是指将最后一个元素移动到数组开头得到的数组。一个长度为 $n$ 的排列恰好有 $n$ 个循环位移。输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t (1≤t≤500)。接下来是每个测试用例的描述。
每个测试用例单独一行,包含一个整数 n (1≤n≤2⋅105)。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出满足条件的排列。如果存在多个解,输出任意一个即可。如果不存在符合条件的排列,输出 −1。
输入输出样例
输入#1
3 4 5 3
输出#1
-1 4 1 3 5 2 1 3 2
说明/提示
在第二个样例中,存在一个排列使得每个循环位移中都有一个固定点(用深红色标出):

第一行表示元素的位置编号,第二行展示了目标排列的所有循环位移。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?