algorithm - 赢得 Frog 比赛

标签 algorithm dynamic-programming knapsack-problem

我遇到了这个问题,但无法想出解决方案。有一场 Frog 赛跑, Frog 有一定数量的有效跳步。它可以向前或向后移动。为了赢得比赛, Frog 必须尽可能靠近终点线,但不能越过终点线。

例子。 6, 1 7

因此,终点线距离 6 个单位, Frog 可以向后和向前跳跃 17 个单位。在这里,输出应该是 6,因为最佳策略是向后 1 单位,然后向前 7 步到达终点线。

最佳答案

你能到达的位置都是gcd(valid jumpsteps)的整数倍。如果答案只是壁橱可到达的位置,请在终点线之前或终点线处取倍数。

如果您还需要这些步骤,可以使用扩展欧氏算法来计算组合。

关于algorithm - 赢得 Frog 比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563520/

相关文章:

java - 使最长字符间隔等于 K 所需的最少操作

algorithm - 带有 "at least X value"约束的背包

python - 下面的背包填充算法的实现有什么问题?

c++ - 从整数列表中找到最小缺失整数的最快方法

arrays - 数组分区

algorithm - 最小化平方和的动态规划

algorithm - 如何使用具有可连接输入整数的动态编程来确定最长的递增子序列

c++ - OpenMP - 嵌套 for 循环在外部循环之前并行时变得更快。为什么?

python - 使用 python 在大型 .txt 中进行二进制搜索(按哈希排序)

algorithm - 如何生成随机的唯一数字,其中相邻数字在指定范围内?