【问题标题】:minimum cost using dynammic programming使用动态规划的最低成本
【发布时间】:2014-10-29 16:48:46
【问题描述】:

我有一个手机信号塔问题。有n个城镇。我们想在一些城镇建造手机信号塔。每个蜂窝塔都可以覆盖它自己和它的邻居。每个城镇都有建造手机信号塔的成本。我们想找出建造覆盖所有城镇的信号塔的最低成本。

例如,

(1)

小镇 1 2 3

COST 5 1 2 我们选择在 town-2 建造手机信号塔。成本为 1。

(2)

小镇 1 2 3 4

COST 5 1 2 3 我们选择在town-2/3 建造手机信号塔。成本是 1+2=3。

(3)

小镇 1 2 3 4

成本 5 1 3 2

我们选择在 2/4 镇建造手机信号塔。成本为 1+2=3。 有没有办法在 O(n) 时间内解决这个问题?我查看了dynamic programming proboem for minimum cost 上的帖子,但我认为给出的答案是 O(n^2)。我考虑过动态编程中的 LIS,但我认为它也会在 O(n^2) 中运行。

【问题讨论】:

标签: algorithm data-structures dynamic-programming


【解决方案1】:

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

【讨论】:

  • 我认为你是对的。有没有办法使用动态编程来表达或转换和编码?抱歉,我对这些技术不熟悉
  • @masheranosanchez 是的。您可以将值存储在二维数组 f[N][2] 中(第一个维度是城镇的索引,第二个维度 - 真或假)并使用给定公式使用循环填充此数组。也可以使用带有记忆的递归。
  • 嗯,我不关注;你能说清楚吗?提前致谢
  • 这里有多少子问题?他们每个人的运行时间是多少
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 2020-10-03
  • 2012-11-12
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多