使用DP最大化利润?

时间:2016-07-28 17:31:46

标签: algorithm dynamic-programming

我有一个算法问题。我试过解决,但无法得到解决方案。我知道它可以使用dp解决,但不是很有利可图。使用memoization算法的递归dp对我来说是理想的理想选择。即使是一个小提示或链接也可以。问题陈述是:

“一个店主的重量是一个 i 。在任何一天,他只卖一个苹果。但是由于细菌,苹果的重量减轻了,因此店主赚了一个 i %d的利润(即, i mod d)当他在第d天卖掉重量为a i 的苹果时。 店主可以赚取的最大利润是什么“

输入: 第一行是'n',第二行包含n个苹果的权重。

示例:

输入:

2

3 4

输出:

1

说明:店主第一天卖苹果4,第二天卖苹果3。因此,利润= 4%1 + 3%2 = 1

1 个答案:

答案 0 :(得分:3)

根据我的说法,可以使用二分图中的最大权重匹配来解决。

店主有n个苹果,他必须将每个苹果分配到1 to n的一天。他也知道相关的利润。

因此可以形成nxn完整的二分图,并且可以使用匈牙利算法获得最大权重匹配。

相关问题