1 条题解
-
0
题解
算法思路
这是一个数学构造/贪心问题。k-蚱蜢可以向右、向上或右上方向移动最多 格。我们需要从 到 的最少步数。
关键观察:
- 由于可以沿对角线移动,最优策略是尽量走对角线,因为一次对角线移动相当于同时向右和向上各移动 1 格
- 如果 ,交换两者(因为问题是对称的)
- 计算过程:
- 先走 次对角线(每次移动 格)
- 如果还有剩余 ,需要额外一步
- 然后向右移动剩余距离 次
- 如果还有剩余 ,需要额外一步
算法步骤
- 如果 ,交换两者使
- 计算 的商和余数
- 计算 的商和余数
- 总步数 = 两个商的和 + 两个余数是否大于 0 的指示值
复杂度分析
- 时间复杂度:,只有常数次算术运算
- 空间复杂度:,只用了几个变量
算法标签
- 贪心算法
- 数学构造
- 数论
- 最优策略
- 1
信息
- ID
- 3913
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 3
- 已通过
- 1
- 上传者