試圖找出下列問題:分區陣列分成相同總和值的K個子集
給定N個正整數的集合S的任務是把它們分爲K個子集,使得元件值的總和在每個K子集中都是相等的。
我想用一組不超過10個整數的值來做到這一點,值不大於10,並且少於5個子集。 所有整數需要進行分配,只有完美的解決方案(這意味着所有子集都是平等的,沒有近似)被接受。 我希望它使用遞歸回溯解決。我在網上發現的大多數資源都是使用其他我不明白的方法,使用位掩碼或其他方法,或者僅用於兩個子集而不是K子集。
我的第一個想法是
- 排序集合按升序順序,檢查所有的基礎情況下(例如均勻分佈是不可能的),計算平均值所有子集要有使所有子集等於。
- 通過每個子集,填充每個子集(從最大值開始),直到達到平均值(意味着它們已滿)。
- 如果子集的平均值不能滿足(未分配值太大等),返回並嘗試其他子集的其他組合。
- 保持如果遇到死角回去。如果已經遇到的所有死角
- 停止或完美的解決方案被發現。
不幸的是,我真的很困難,尤其是在實施回溯和重新組合新方案時。
任何幫助表示讚賞!
對不起,但是SO不是解決資源的作業。來這裏與您的代碼嘗試有一些特定的問題 –
我明白。對於任何可能讀取此內容的人,這裏有一個幫助:http://www.geeksforgeeks.org/backttracking-set-4-subset-sum/ – LuXxenatorX
這是[Bin裝箱問題](https://en.wikipedia .ORG /維基/ Bin_packing_problem)。 – amit