一位同事要求我为以下难题开发一种算法。
有一座桥,一次只能停两辆卡车。桥的一端,有很重的花岗岩块需要运到桥的另一端。共有5辆卡车。每辆卡车最多可以装载 5 个花岗岩块。加载和卸载单个块需要 10 分钟。无论重量如何,一辆卡车过桥都需要 1 小时。桥的每一端只有一个人负责装卸卡车,因此一辆卡车需要等待,而另一辆正在装卸。
我们的目标是在 12 小时内运送尽可能多的区块。在这个时间范围内我们可以传输的区块总数是多少?拥有超过 5 辆卡车会有帮助吗?
您将如何解决这个问题并开发算法?
一位同事要求我为以下难题开发一种算法。
有一座桥,一次只能停两辆卡车。桥的一端,有很重的花岗岩块需要运到桥的另一端。共有5辆卡车。每辆卡车最多可以装载 5 个花岗岩块。加载和卸载单个块需要 10 分钟。无论重量如何,一辆卡车过桥都需要 1 小时。桥的每一端只有一个人负责装卸卡车,因此一辆卡车需要等待,而另一辆正在装卸。
我们的目标是在 12 小时内运送尽可能多的区块。在这个时间范围内我们可以传输的区块总数是多少?拥有超过 5 辆卡车会有帮助吗?
您将如何解决这个问题并开发算法?
把这个问题分解成碎片。
桥一次可以容纳 2 辆卡车。我们有 5 辆卡车。一辆卡车过桥需要1小时。第一个小时,2辆卡车并排行驶,然后他们将等待卸货5 * 2 = 10个街区。其他 2 辆卡车也会发生同样的情况。前 2 小时 将 有 20 个 街区 被 移动 . 同时,最后两辆卡车将在第 5 辆卡车搬运块体之前和时卸载,其他 1(卸载) 一个人将返回装载。所以在第 3 个小时,只有 5 个街区会被移动。但是因为有另一辆卡车在卸载通道等待(第 4 个小时)。IT 将立即开始它的旅程,而“仍在装载”的卡车将需要 10 分钟才能重新装满,因此总时间 = 1 小时和 10 分钟加起来 4 小时 10 分钟,总块传输 = 20。
同样的情况如下:
5 小时 20 分钟 : 25 块
6 小时 30 分钟 : 30 块
7 小时 40 块 : 35 块
8 小时 50 块 : 40 块
10 小时 00 块 : 45 块
11 小时 20 块 : 50
块, 卡车 需要 1 小时 , 他们 将 留在 桥上 直到 时间 结束 . 所以总块转移= 50。抱歉,小伙子拼写错误。