1 条题解
-
0
题目理解 我们有一个点,初始在 。 两人轮流移动,Sakurako 先手。 第 次移动的步长是 :
第 1 步(Sakurako):
第 2 步(Kosuke):
第 3 步(Sakurako):
第 4 步(Kosuke):
……
当 时游戏结束。 最后一步是谁走的,就输出谁的名字。
思路分析 我们不需要找公式,直接模拟即可。 因为 ,步长 增长很快,只需要很少的步数就能超出 。
设当前坐标 ,步数 从 1 开始。
如果 是奇数,Sakurako 移动, 减少 ; 如果 是偶数,Kosuke 移动, 增加 。
每次移动后检查 是否成立,成立则上一个人获胜。
时间复杂度 最坏情况下步数大约是 级别(因为移动距离是奇数累加),所以复杂度 或直接 。 这里标程说 也是安全的,因为 ,实际上远小于 。
模拟步骤 初始化 ,。
循环:
如果 为奇数:
如果 为偶数:
检查 :
如果是,则最后移动的人是:
若 为奇数 刚才是 Sakurako 移动 输出 "Sakurako"
若 为偶数 刚才是 Kosuke 移动 输出 "Kosuke"
否则 ,继续。
- 1
信息
- ID
- 6669
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1.5
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者