我们有N型1型和M型2型硬币。游戏板具有N型1型和M型2型。在这个游戏中,我们必须将一枚硬币放入每个方格。放置所有硬币后,我们将根据我们的硬币放置策略获得分数。
如果type-1 square包含type-1硬币,那么我们将获得A点,如果type-2 square包含type-2硬币,那么我们将得到B点,而在所有其他情况下,我们将得到C点。我们的总比赛得分将是所有广场的得分总和。
可用的用户输入是(N,M,A,B,C)
我们如何才能最大化我们的分数?
例如,如果N = 3 M = 4 A = 500 B = 800 C = 600通过最优策略,我们将3个1型硬币放入3个1型方格中,得分= 500 + 500 + 500 = 1500,我们将4个2型硬币放入4个2型2格得分= 800 + 800 + 800 + 800 = 3200,因此总得分为1500 + 3200 = 4700
答案 0 :(得分:1)
这很简单。一个明显有效的解决方案是将所有1型硬币放置在1型方格。这会给你一定的分数。我们现在可以用2型硬币交换任何1型硬币。这样做,我们将失去A + B
分,但获得2 C
。因此,只有2 C > A + B
才能进行交换。我们可以交换min(N, M)
次。所以最高分是:
nSwaps =
if 2 * C > A + B then
min(N, M)
else
0
end if
maxScore = N * A + M * B + nSwaps * (2 * C - A - B)