我有一个算法问题。我试过解决,但无法得到解决方案。我知道它可以使用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
答案 0 :(得分:3)
根据我的说法,可以使用二分图中的最大权重匹配来解决。
店主有n
个苹果,他必须将每个苹果分配到1 to n
的一天。他也知道相关的利润。
因此可以形成nxn
完整的二分图,并且可以使用匈牙利算法获得最大权重匹配。