【问题标题】:Minimization using a Greedy Algorithm使用贪心算法最小化
【发布时间】:2015-10-18 07:14:16
【问题描述】:

有一个问题,即有 n 个房子 a1,...an 在一条直线上。您想建造设施,使每栋房屋与设施的距离最多为 X。有 p 个位置 b1,...bp 可以建造设施。 我试图找出一个贪心算法来确定可以建造的最小设施数量是多少。

我将如何解决这个问题?

【问题讨论】:

标签: algorithm greedy minimization


【解决方案1】:

对于每个位置 (B1,...,Bp),创建一个列表,其中包含距该位置 X 距离内的房屋。

创建最初包含所有房屋的房屋列表(我们将此列表称为“NeedToCover”)。

现在查看每个位置的列表,并确定哪个位置的列表涵盖了“NeedToCover”列表中最多的房屋。这将是您建造设施的地点。

建造设施后,移除“NeedToCover”中您刚刚选择的那个位置所覆盖的所有房屋。

对“NeedToCover”中的剩余房屋和剩余位置重复上述步骤,直到“NeedToCover”为空,这意味着所有房屋都在距离设施 X 的范围内。

(这个算法是贪心的,因为每次你都“不考虑未来”从剩余房屋中选择覆盖最多房屋的位置。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2022-12-07
    相关资源
    最近更新 更多