2016-07-28 51 views
0

我有一個算法問題。我試着解決,但無法得到解決方案。我知道它可以使用dp來解決,但是沒有獲得足夠的利基。使用memoization算法的遞歸dp對我來說是理想的。即使是一個小提示或鏈接也可以。這個問題的說法是:使用DP最大化利潤?

「一位店主有‘N’重的蘋果一個在任何一天,他賣出正是蘋果的一個,但由於細菌,蘋果失去它們的權重,因此店主賺取。一個利潤%d的(即 MOD d)時,他賣出重量的蘋果一天「d」。 什麼是最大的利潤店主可以使」

輸入: 第一行是'n',第二行包含n個蘋果的權重。

實施例:

輸入:

輸出:

說明:店主出售蘋果4上第一天第二天的蘋果3。因此,利潤= 4%1 + 3%2 = 1

+1

問題陳述沒有多大意義。蘋果的價值不會隨着時間而下降。 4%1 = 0,4%2 = 0,4%3 = 1,4%4 = 0,4%5 = 4,4%6 = 4 ... – m69

+0

店主有多少個蘋果? – ead

+0

如果店主在第d天獲得了a_i/d的利潤,問題會更有意義。採取mod看起來真的很奇怪。 – user172818

回答

3

根據我可以解決使用最大權重匹配在二分圖。

店主有n蘋果,他必須分配每個蘋果從1 to n一天。他也知道相關的利潤。

因此一個nxn可以形成完整的二分圖,並且可以使用匈牙利算法獲得最大的權重匹配。

+0

你的意思是「最大加權雙方匹配」? – ead

+0

是的。當然它是加權的。 –