Algorithm 跟进:找到停车次数固定的最佳停车顺序
我正在尝试编写以下问题的代码: 在a0,a1,…,有n家酒店,其中0Algorithm 跟进:找到停车次数固定的最佳停车顺序,algorithm,dynamic-programming,greedy,Algorithm,Dynamic Programming,Greedy,我正在尝试编写以下问题的代码: 在a0,a1,…,有n家酒店,其中0(7-4),但我认为ans应该在位置[0,5,10]处停止,并且algo不会为情况3选择位置5,当合并两个站点时,哪个站点将保持?换言之,新站点的位置是什么?@PetarPetrovic如果你有n-2,n-1,n,n+1站点,并且你需要合并n-1和n,比较以下两个距离:n-2到n,n-1到n+1,如果第一个是两个站点中的最小一个,则在n处合并,否则在n-1处合并应该有效,对吗?假设输入在位置[0,4,5,7,10]有5个站点,输
dp(i)
作为最低成本,这样最后一站就是酒店i。
基本情况:dp(0)=0
为了计算DP(i),我考虑所有可能的地方<代码> 0 > P>我在前面的问题上也写了这个答案,但是我想你忽略了它。无论如何,让我知道这个方法是否有用 您的算法将为您提供站点位置(int[]k),这将使您的成本最小化,而无需考虑d。我从你的问题中得出,你想把这些k点转换成d点 有3种情况: (一) k、 长度==d 问题解决 (二) k、 长度
我不确定这种方法是最佳的还是正确的,但这是我的两分钱。我也写了你上一个问题的答案,但我认为你忽略了它。无论如何,让我知道这个方法是否有用 您的算法将为您提供站点位置(int[]k),这将使您的成本最小化,而无需考虑d。我从你的问题中得出,你想把这些k点转换成d点 有3种情况: (一) k、 长度==d 问题解决 (二) k、 长度
我不确定这种方法是最佳的还是正确的,但这是我的两分钱。你能再增加一个维度来记录停止次数吗?那么,重复关系会是什么样子?我正试图找到一个有效的解决方案,可能是O(nd)阶。你能再增加一个维度来记录停止的次数吗?那么递归关系会是什么样子?我试图找到一个有效的解决方案,可能是O(nd)级的。对于案例3,当你合并两个站点时,哪个站点会保留?换言之,新站点的位置是什么?@PetarPetrovic如果你有n-2,n-1,n,n+1站点,并且你需要合并n-1和n,比较以下两个距离:n-2到n,n-1到n+1,如果第一个是两个站点中的最小一个,则在n处合并,否则在n-1处合并应该有效,对吗?假设输入在位置[0,4,5,7,10]有5个站点,输出想要3个站点algo将首先合并位置[4,5]的站点,并选择位置4,因为(5-0)>(7-4),但我认为ans应该在位置[0,5,10]处停止,并且algo不会为情况3选择位置5,当合并两个站点时,哪个站点将保持?换言之,新站点的位置是什么?@PetarPetrovic如果你有n-2,n-1,n,n+1站点,并且你需要合并n-1和n,比较以下两个距离:n-2到n,n-1到n+1,如果第一个是两个站点中的最小一个,则在n处合并,否则在n-1处合并应该有效,对吗?假设输入在位置[0,4,5,7,10]有5个站点,输出想要3个站点algo将首先合并位置[4,5]的站点并选择位置4,因为(5-0)>(7-4),但我认为ans应该在位置[0,5,10]停止,algo不会选择位置5
for i=1;i<=n;i++
dp(i)=inf
prev(i)=undefined
for k=0;k<i;k++
if (dp(i)>dp(k)+(ai-ak)^2)
dp(i) = dp(k)+(ai-ak)^2)
prev(i) = k