我有一个由
我还有一个成本数组
我必须在第一个服务站进行车辆维护,我的汽车在两个服务站之间最多可行驶100英里。
如何以最少的成本从高速公路起点到终点获得最有效的算法(需要知道停靠在哪些车站)?我已经找到了一种贪心解决方案来最小化停留次数,但对于成本最少的情况,我正在考虑DP。最优子问题如下:
n
个服务站D[]
组成的数组,表示每个服务站i
距离高速公路起点的距离为D[i]
。我还有一个成本数组
C[]
,其中C[i]
表示在服务站i
维修车辆的成本。我必须在第一个服务站进行车辆维护,我的汽车在两个服务站之间最多可行驶100英里。
如何以最少的成本从高速公路起点到终点获得最有效的算法(需要知道停靠在哪些车站)?我已经找到了一种贪心解决方案来最小化停留次数,但对于成本最少的情况,我正在考虑DP。最优子问题如下:
bestcost[j] = min( 0<i<j bestcost[i] + C[j] s.t. D[j]-D[i] <= 100)
并且有一个单独的数组last[j]
,其中包含停靠的最后一个站点,这将是上面子问题中最好的i
。
这是否是正确的方法,还是有更好的贪心/动态规划解决方案?
O(1)
的时间内找到最小值,从而使运行时间为O(n)
,这是最优解,并且具有低常数因子。即使你的自行车行驶范围是不变的,这种方法也可以使用。 - Niklas B.i
时每次进行固定费用C[i]
。 - Anagha