ZJU-1093

 

DP,先對輸入進行處理,每一個立方體處理爲3個面,如有尺寸雷同面,則合併。
保證每個面的x<y。

然後爲了減小無效搜索的次數,對於面進行了排序,以y爲第一關鍵字,x爲第二關鍵字,都是用quicksort,發現快速排序用起來真的是挺方便,不過不要排序直接DP應該也是沒有問題的。

(當然merge sort還能更快,就是代碼太多了。值得一提的是儘管merge sort和heap sort的最壞情況的複雜度都是比較排序的極限O(nlgn)但是其中隱含的參數還是有些區別的,merge sort要更快一些。)

排完了序以後,能放在第i個面上的面必定在0~i-1中,maxdone[]這個數組存儲已經計算出的每個面上能包括該面能壘的最高高度,所以符合DP的要求
1.最優子結構:如果第i個面已經是最高高度,則它上面的i-1這個面以上也是i-1這個面可以壘的最高高度。
2.重疊子問題:重疊的子問題的結果存儲在maxdone[]用來加速計算。

 

 

發佈了68 篇原創文章 · 獲贊 26 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章