#SLT05A. 2026年S组模拟赛10连测第5场-T1 洗牌机
2026年S组模拟赛10连测第5场-T1 洗牌机
| 项目 | 内容 |
|---|---|
| 输入文件名 | shuffle.in |
| 输出文件名 | shuffle.out |
| 可执行文件名 | shuffle |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
市彩票中心的摇奖大厅里有一台洗牌机。机器的滚筒上一周排开 个格子,编号 ;每天开机前,工作人员把编号 的 颗摇奖球按号入格,即 号格里放的是 号球。
机器面板上贴着一张规则表,给出 个整数 ,是 的一个排列。每摇一次,滚筒按规则表同时搬运全部球: 号格里的球被送到 号格。由于规则表是排列,每次搬运后每个格子里仍恰好有一颗球。
质检科每年要对这台机器做周期检定,需要回答两个问题。第一,从球全部按号入格的状态开始,至少摇多少次,所有球才第一次全部回到各自的初始格子。第二,给定摇动次数 ,摇 次之后,每个格子里各是几号球。
请编写检定程序:读入格子数 、摇动次数 与规则表,回答上述两问。
输入格式
从文件 shuffle.in 中读入数据。
- 第一行两个整数 ,分别表示格子数与摇动次数;
- 第二行 个整数 ,表示规则表。
输出格式
输出到文件 shuffle.out 中。
- 第一行输出一个整数,表示第一问的答案;
- 第二行输出 个整数,按格子编号 的顺序,依次表示摇 次后每个格子里的球编号。
样例
4 2
2 3 1 4
3
2 3 1 4
样例 1 解释
逐摇记录各格子里的球编号:
| 摇动次数 | 1 号格 | 2 号格 | 3 号格 | 4 号格 |
|---|---|---|---|---|
摇第 次时所有球第一次全部回到初始格子,故第一问答案为 ;摇 次后的局面即第二行输出。
6 10
2 1 4 5 3 6
6
1 2 5 3 4 6
样例 2 解释
追踪 号格里的球:它依次经过 号格、 号格、 号格,每摇 次回到 号格一次。,故摇 次后它在 号格。 号格与 号格的球每摇一次互换位置, 是偶数,摇 次后各回原位。其余格子可同样推算。
5 7
1 2 3 4 5
1
1 2 3 4 5
样例 3 解释
每摇一次, 号格里的球都被送到 号格,各球位置始终不变,摇 次即第一次全部回到初始格子。
数据范围
对于所有测试数据,保证:
- ,;
- 是 的一个排列;
- 第一问的答案不超过 。
各测试点的约束如下:
| 测试点 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| A | |||
| 无 |
- 特殊性质 A: 号格里的球第一次重新回到 号格,恰好发生在第 次摇动。
难度
未评定
通过率
—
尝试
0
通过
0
- ID
- 3785
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者