algorithm - 有趣的最低价格问题

标签 algorithm math

n 个公交车站,我们知道第 i 站和第 j 站之间的费用。 这是一条单行道。考虑到所有可能的连接,从第 1 站到第 n 站的路线的最低价格是多少?时间和内存消耗应该尽可能少。

附注举个例子,假设有 4 个站点。我们有这样一张价格表:

. 3$ 5$ 7$
. .  1$ 3$
. .  .  1$

从第 1 站到第 4 站不停歇,我们支付 7 美元。如果我们在第二站改变路线,我们需要支付 3$+1$ = 4$ 才能开到第三站,但是如果我们走到终点,我们会多付 2$,所以总的来说会花费 6$,但是如果我们再次在第 3 站更改路线,我们将支付 4+1=5$。

最佳答案

d[i][j] 为给定价格,l[k] 为从 k 开始的最低总成本到 n。然后

l[n] = 0

l[k] = min(d[k][i] + l[i], i=k+1..n)

运行时间为 O(n^2)。 (而且,正如@Henrik 指出的那样,这是最佳的。)

关于algorithm - 有趣的最低价格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4814265/

相关文章:

ios - 使用 3 个 CGPoints 寻找角度

algorithm - 合并一个包含 2 个已排序部分的数组

java - 在测验应用程序中设置 3 个难度级别

java - 如何使用 Eclipse 查找 Java 代码中潜在的数字溢出?

math - 神经网络 0 vs -1

c++ - 生成 "unique"矩阵

math - 自动以数学方式计算曲线的 'elbow'

string - 尝试与三元搜索树进行自动完成?

python - 以最小化组总数为目标选择组

algorithm - 什么时候使用每种排序算法?