首页 文章

如何找到从一个地方到另一个地方所需的最低成本燃料

提问于
浏览
2

问题是:
我们想要从一个地方到另一个地方乘坐卡车远离它的D(D <= 1,000,000,000)单位 . 卡车可以容纳G(G <1,000,000)单位的燃料,并且在1个单位距离内消耗1单位燃料 . 沿途有N(N <= 50,000)个加油站 . 每个站点距起点都是X_i单位,每单位燃料的价格是Y_i(Y_i <= 1,000,000) . 我们用B单位燃料开始旅程 . 到达目的地的最低费用是多少?

Actual problem statement来自USACO过去的比赛)

我的算法:
设F [i] =到达加油站i和第N个加油站所需的最低成本是目的地 .
假设k是我们在到达i之前填充油箱的最后一站, F[i] = F[k] + Y_k * (X_i-X_k) . 我们为所有k <i尝试这个,这样 X_i-X_k < D 并取最小值 .
F [N 1]将是最终答案 .

这个算法的问题:
1.将需要O(N2)时间,该时间不会在2秒的时间内运行 .
2.它考虑的情况是我们到达一个已经有m单位燃料的燃料站k,我们只填充X_i-X_k-m单位的燃料到达i .

我该如何克服这些问题?

1 回答

相关问题