贪婪算法:用更少的砖头建造最高的塔

2024-09-30 14:32:41 发布

您现在位置:Python中文网/ 问答频道 /正文

一群孩子试图建造尽可能高的塔。每个孩子都有不同大小的砖块。第一个孩子有w1,1,w1,n1,第二个w2,1。。。w2、n2等。孩子们去吃晚饭,但一个聪明的孩子留下来了。现在他唯一的零钱就是从其他孩子那里捡些砖头,这样他就有了最高的塔。显示解决此问题的最快算法,该算法只需少量砖块(注意,wi,j的数量可能非常大)。毛巾被视为一套,而不是一堆(我们可以从特定的塔上取任何我们想要的砖块)

我整天都在想如何解决这个问题,但对于我创造的所有解决方案,我也看到了一种情况,当它们不起作用时。 我尝试使用贪婪算法。我有个最好的主意,就是从塔楼上拿砖头,塔楼比聪明的孩子大。如果取砖+聪明孩子之塔的尺寸更小,从所有塔中取最大的砖。 不幸的是,问题是当我们有这样的集合时: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], [2,2,2,2,2,2,2], [7,4,1], [9, 2] 《聪明孩子之塔》有13号

有人知道或提示如何解决这个任务吗


Tags: 算法数量情况孩子解决方案w1主意n2