需要帮助来决定游戏策略

时间:2013-07-11 15:29:42

标签: algorithm computer-science

我想知道应采用什么策略来解决以下问题。

问题陈述

有2个煤矿,每个煤矿都有一群矿工。我们的工作是将食品运往矿场。每当一批食物到达他们的矿井时,矿工就会产生一些煤炭。食品运输有三种类型:肉类,鱼类和面包。

每次新货物到达他们的矿场时,他们都会考虑新货物和前两批货物(如果没有那么多则更少),然后:

  • 如果所有货物属于同一类型,它们将生产一个煤炭单位
  • 如果货物中有两种不同类型的食品,它们将生产两个煤炭单位。
  • 如果有三种不同类型的食物,他们将生产三个单位的煤。

预先知道食品运输的类型及其发送顺序。

输入

按照发送顺序,您将获得食品运输的类型。

目标

目标是最大化煤炭产量。这是通过确定哪些货物应该去哪个矿场来完成的。这两个地雷不一定要收到相同数量的货物(事实上,它允许将所有货物发送到一个矿场)。

实施例

对于装运订单:MBMFFB,预期输出(最大可能煤输出)为12。

1 个答案:

答案 0 :(得分:1)

你使用的逻辑是错误的:

M -> Mine 1 = 1 coal unit(s)

B -> Mine 1 = 2 "

M -> Mine 2 = 1 "

F -> Mine 1 = 3 "

F -> Mine 2 = 2 "

B -> Mine 2 = 3 "

从第一天开始,1号矿只有1种食物。

我可以看到一个简单的动态编程算法,但我会把它留给你。

一个简单的提示:对于每批货,您可以将其发送到1号或2号矿;发送之后,重要的是:

  1. 已开采的矿山数量;
  2. 之前的3次发货。
  3. 因此,最多(3 ^ 3)^ 2 = 729次装运配置,并且每种配置都是最佳煤量。在每个步骤中计算这些配置,最后您将得到答案。