1 条题解
-
0
自动搬运
来自洛谷,原作者为

Maxmilite
**搬运于
2025-08-24 21:15:54,当前版本为作者最后更新于2024-01-21 23:03:10,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Source & Knowledge
2024 年 1 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
给定池塘中的 个位置和 只小跳蛙(池塘中的空位用 表示)。每一次让相应编号的小跳蛙跳到池塘中的空位置上,一共跳跃 次。求最终池塘中每个位置的小跳蛙编号。
题目分析
本题考察对数组结构的运用。
可以注意到,第一次时 号小跳蛙跳到池塘中的 元素位置上, 元素变为 , 位置变为 ;第二次 号跳到当前的 元素位置上,即跳到初始时的 元素位置上。原来的 元素经过 的变化。以此类推,最后一只小跳蛙会跳到初始时 元素的位置上,,最终 号元素的位置变为 。
因此可以发现,对于池塘中除 号元素位置以外的位置,其中的元素在整个跳跃流程结束后都变为了自身 。而 号位置变为了 。
因此在读入整个数组 后,从头开始输出 即可,唯一需要注意的就是当 时需要输出 。
for (int i = 1; i <= n; ++i) { cin >> a[i]; } for (int i = 1; i <= n; ++i) { if (a[i] != n) { cout << a[i] + 1 << " "; } else { cout << 0 << " "; } }从另一种角度考虑,对于某个位置 ,其中的元素会在 撤走后变为 (除 的情况外),因此也可以得到与上文一样的结论。
视频讲解
- 1
信息
- ID
- 9477
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者