房子着色的最低成本?

时间:2016-12-18 15:38:54

标签: algorithm language-agnostic dynamic-programming

我遇到了问题

  

连续N栋房屋。每个房子都可以涂成红色,   绿色或蓝色。为每个房子着色的成本   颜色是不同的。找到每个房子的颜色,这样就没有两个   相邻的房屋具有相同的颜色和着色的总成本   所有的房子都是最小的。

以下是complete question

对我来说问题看起来有点令人困惑,因为目标是最小化成本并确保没有相邻的房子有相同的颜色。在那种情况下,我不应该选择  三个中只有两种颜色,其成本最低。

这里说的是颜色的费用

  1. 红色$ 100
  2. 绿色$ 200
  3. 蓝色$ 300
  4. 我有5个排屋

    这将是我的Algo

    1. 选择红色和绿色,因为其成本最低
    2. 计算5%2。

      如果5%2 == 1则从最后开始并选择最后一个房子的颜色为红色($ 100)。现在选择备用颜色

      如果5%2 == 0则从头开始并选择备用颜色

    3. 我看到Is "house coloring with three colors" NP?建议动态编程但是我不确定我的方法有什么问题以及为什么需要动态编程?

1 个答案:

答案 0 :(得分:0)

这(大概)是一个家庭作业问题。我认为目的是教你实现贪心算法:

  1. 使用最便宜的颜色("红色")绘制第一个房子。
  2. 使用最便宜的颜色为下一个房子涂漆。
  3. 第二个将在" red"之间交替。和"绿色",但您不必提前选择颜色。

    如果我正在分配这个问题,那么下一个问题就是"并且假设你只有一个红房子的油漆足够解决这个问题"。