CF2123F.Minimize Fixed Points

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

称一个长度为 nn 的排列 pp 是“好”的,如果对于所有 2≤i≤n2 \leq i \leq n,都有 gcd⁡(pi,i)>1\gcd(p_i, i) > 1。请你在所有长度为 nn 的“好”排列中,找到一个定点数最少的“好”排列。如果有多个这样的排列,输出任意一个即可。

一个长度为 nn 的排列是一个数组,包含了 11 到 nn 的所有整数,且每个整数恰好出现一次,顺序任意。

gcd⁡(x,y)\gcd(x, y) 表示 xx 和 yy 的最大公约数。

排列 pp 的定点是指满足 pj=jp_j = j 的下标 jj(1≤j≤n1 \leq j \leq n)。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例包含一行,一个整数 nn(2≤n≤1052 \leq n \leq 10^5),表示排列的长度。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

对于每个测试用例,输出一行,给出一个长度为 nn 的“好”排列,且定点数最少。若有多个答案,输出任意一个即可。

输入输出样例

  • 输入#1

    4
    2
    3
    6
    13

    输出#1

    1 2
    1 2 3
    1 4 6 2 5 3
    1 12 9 6 10 8 7 4 3 5 11 2 13

说明/提示

在第三个样例中,我们构造的排列如下:

ii pip_i gcd⁡(pi,i)\gcd(p_i, i)
11 11 11
22 44 22
33 66 33
44 22 22
55 55 55
66 33 33

可以看到,对于所有 2≤i≤62 \leq i \leq 6,都有 gcd⁡(pi,i)>1\gcd(p_i, i) > 1。此外,只有 11 和 55 是定点。可以证明,无法构造出定点更少的长度为 66 的“好”排列。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页