我有功課做查找/創建算法,解決了這個問題:查找算法類
n
- 桶 數
k
- 不同顏色的塊 數
p_i
- 斗數能力我c_i
- 與色塊的編號i
假設是水桶站在一個圓周上。
要做什麼:
每個桶必須每個顏色至多有一個塊。而基本的操作是傳輸塊到鄰居桶。
我不希望解決這個問題,現在我想知道哪類問題是這個 - 圖或其他東西。
非常感謝。
編輯:我必須用C++編寫它。
編輯:問題例如
- 1鬥容量5:1黃2綠色
- 2鬥容量5:1白色2黃色
- 3鬥容量2:2的藍色
- 4桶容量7:1綠色
算法必須使每個桶包含至多一個塊的每種顏色。
編輯:我的想法
我在想搜索樹在那裏我將產生正確定位塊的所有可能性,但我不知道如何計算該解決方案的步驟。另一個想法是從每個不應該在裏面的桶塊「掃」。最後的想法是從塊的角度來看問題,並且「掃描」桶包括每種顏色的多個塊。但我找不到任何有力的想法,這將解決這個問題。
編輯:我的算法
- 怎麼算每種顏色我有很多塊。
- 按此降序排序。
- 對於每一種顏色從最衆多的一個:
- 每鬥: 1.如果該桶包含的顏色超過1塊到2否則繼續。 2.嘗試將COLOR塊放入相鄰桶。如果任何鄰居沒有足夠的位置,則將鄰居塊中的塊交換到該桶中,然後將COLOR塊放入該桶中。
什麼問題?該算法應該做什麼? – Beta
到目前爲止您嘗試過什麼?你認爲答案會是什麼?請向我們展示一些更多的努力。 – templatetypedef
在給你這個任務之前,你的老師沒有給你任何關於算法的信息? –