Algorithm 使用dynamic编程实现最低成本

Algorithm 使用dynamic编程实现最低成本,algorithm,data-structures,dynamic-programming,Algorithm,Data Structures,Dynamic Programming,我有个手机发射塔的问题。有n个城镇。我们想在一些城镇建造手机发射塔。每个细胞塔都可以覆盖自己和它的邻居。每个城镇都有建造细胞塔的费用。我们想找出建造覆盖所有城镇的细胞塔的最低成本 比如说, (一) 城市1 2 3 成本5.12我们选择在2号镇建造细胞塔。费用是1美元 (二) 城市1234 成本5 1 2 3我们选择在镇上建造细胞塔-2/3。成本是1+2=3 (三) 城市1234 费用5132 我们选择在城镇2/4建造手机塔。成本是1+2=3。 有没有办法在O(n)时间内解决这个问题?我看了上面的

我有个手机发射塔的问题。有n个城镇。我们想在一些城镇建造手机发射塔。每个细胞塔都可以覆盖自己和它的邻居。每个城镇都有建造细胞塔的费用。我们想找出建造覆盖所有城镇的细胞塔的最低成本

比如说,

(一)

城市1 2 3

成本5.12我们选择在2号镇建造细胞塔。费用是1美元

(二)

城市1234

成本5 1 2 3我们选择在镇上建造细胞塔-2/3。成本是1+2=3

(三)

城市1234

费用5132

我们选择在城镇2/4建造手机塔。成本是1+2=3。
有没有办法在O(n)时间内解决这个问题?我看了上面的帖子,但我想答案是O(n^2)。我考虑过动态规划中的LIS,但我认为它也会在O(n^2)中运行

是的,在O(n)中有解决这个问题的方法。帖子中给出的答案具有线性时间复杂度,所以这正是你需要的。

为什么你认为答案是
O(n^2)
?可能重复@btilly,实际上你是对的,它是O(n)。有没有一种方法可以用动态规划来表达、转换和编码呢?我想你是对的。有没有一种方法可以用动态规划来表达、转换和编码?对不起,我是新来的techniques@masheranosanchez对您可以将值存储在二维数组f[N][2](第一个维度用于城镇索引,第二个维度为true或false),并使用循环使用给定公式填充此数组。也可以将递归与记忆一起使用。hmmm我不遵循;你能说清楚吗。提前感谢这里有多少子问题?它们各自的运行时间是多少