#SLT05A. 2026年S组模拟赛10连测第5场-T1 洗牌机

2026年S组模拟赛10连测第5场-T1 洗牌机

项目 内容
输入文件名 shuffle.in
输出文件名 shuffle.out
可执行文件名 shuffle
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
是否等分 是

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

市彩票中心的摇奖大厅里有一台洗牌机。机器的滚筒上一周排开 nn 个格子,编号 1∼n1 \sim n;每天开机前,工作人员把编号 1∼n1 \sim n 的 nn 颗摇奖球按号入格,即 ii 号格里放的是 ii 号球。

机器面板上贴着一张规则表,给出 nn 个整数 f1,f2,…,fnf_1, f_2, \dots, f_n,是 1∼n1 \sim n 的一个排列。每摇一次,滚筒按规则表同时搬运全部球:ii 号格里的球被送到 fif_i 号格。由于规则表是排列,每次搬运后每个格子里仍恰好有一颗球。

质检科每年要对这台机器做周期检定,需要回答两个问题。第一,从球全部按号入格的状态开始,至少摇多少次,所有球才第一次全部回到各自的初始格子。第二,给定摇动次数 TT,摇 TT 次之后,每个格子里各是几号球。

请编写检定程序:读入格子数 nn、摇动次数 TT 与规则表,回答上述两问。

输入格式

从文件 shuffle.in 中读入数据。

  • 第一行两个整数 n,Tn, T,分别表示格子数与摇动次数;
  • 第二行 nn 个整数 f1,f2,…,fnf_1, f_2, \dots, f_n,表示规则表。

输出格式

输出到文件 shuffle.out 中。

  • 第一行输出一个整数,表示第一问的答案;
  • 第二行输出 nn 个整数,按格子编号 1∼n1 \sim n 的顺序,依次表示摇 TT 次后每个格子里的球编号。

样例

4 2
2 3 1 4
3
2 3 1 4

样例 1 解释

逐摇记录各格子里的球编号:

摇动次数 1 号格 2 号格 3 号格 4 号格
00 11 22 33 44
11 33 11 22
22 33 11
33 11 22 33

摇第 33 次时所有球第一次全部回到初始格子,故第一问答案为 33;摇 22 次后的局面即第二行输出。

6 10
2 1 4 5 3 6
6
1 2 5 3 4 6

样例 2 解释

追踪 33 号格里的球:它依次经过 33 号格、44 号格、55 号格,每摇 33 次回到 33 号格一次。10=3×3+110 = 3 \times 3 + 1,故摇 1010 次后它在 44 号格。11 号格与 22 号格的球每摇一次互换位置,1010 是偶数,摇 1010 次后各回原位。其余格子可同样推算。

5 7
1 2 3 4 5
1
1 2 3 4 5

样例 3 解释

每摇一次,ii 号格里的球都被送到 ii 号格,各球位置始终不变,摇 11 次即第一次全部回到初始格子。

数据范围

对于所有测试数据,保证:

  • 1≤n≤1051 \le n \le 10^5,0≤T≤10180 \le T \le 10^{18};
  • f1,f2,…,fnf_1, f_2, \dots, f_n 是 1∼n1 \sim n 的一个排列;
  • 第一问的答案不超过 101810^{18}。

各测试点的约束如下:

测试点 nn TT 特殊性质
1∼31\sim3 ≤8\le 8 ≤20\le 20 无
4∼84\sim8 ≤2000\le 2000 ≤109\le 10^9
9∼129\sim12 ≤105\le 10^5 ≤1018\le 10^{18} A
13∼2013\sim20 无
  • 特殊性质 A:11 号格里的球第一次重新回到 11 号格,恰好发生在第 nn 次摇动。
难度 未评定
通过率 —
尝试 0
通过 0
ID
3785
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者