這就是問題所在:哪種算法可以用來解決分區概率的這種變化?
你有兩個長度相等的數組A和B.你必須將它們分成兩組P和Q,使得: (1)它們的差別被最小化。 (2)如果A [i]進入P或Q之一,B [i]應該進入另一個。
下面是實際的問題的鏈接:http://opc.iarcs.org.in/index.php/problems/EQGIFTS
這是我的邏輯(解決實際問題):
如果輸入是:ABCDEFG,值的列表和 索引a,b,c,d,e,f分別爲0,1,2,3,4,5
如果t是a,b,c,d,e,f,g的索引,程序會檢查對於t和i這樣的:在[t]處的值[t]處的值,從t = 5開始,並且i = 1,並且將i的值增加1並且減小噸 的由1
只要它找到一個匹配值時,它交換兩個索引的值 和排序的值從開始[T-1]。 產生的值列表是輸出。
我不知道這個算法有什麼問題,但是它對所有的測試用例都會產生錯誤的答案。 我知道它可以使用動態編程來解決,而且它是分區問題的變體。但是我不知道如何改變分區算法來解決這個問題。
您的問題陳述與鏈接中的問題陳述有兩種不同(可能不重要)。在原始問題中,數組元素是(1)正數和(2)以已知常數(單詞問題中的300)爲界。你已經刪除了這兩個約束。但是,我不知道這是否會改變問題的固有複雜性。 –