2019年4月25日 星期四

[UVa][ Volume I ] 103 - Stacking Boxes

UVa Volume I  103 - Stacking Boxes



題目來源 : Stacking Boxes



解題 :


看到問題描述,我們需要判斷一個盒子能不能放入另一個盒子中。

也就是兩種序列組合d, e的某一種重排,使得di > ej 恆成立

因為不可能一直不斷重排然後測試,因此在測試前我們先統一將序列內容從小排到大

接著,再使用一個boolean陣列nest[i][j],判斷序列j是否可以放入序列i之中。

由於序列都是由小到大排列好,因此直接用loop去一一比對。

最後,就是分別選擇不同的盒子當最外層,使用遞迴的方式。

每遞迴一層就相當於在盒子最內層再塞進一個盒子。接著只要找出能套入最多盒子的組合,

並且將組合的串列輸出。


參考解答(C++)


沒有留言:

張貼留言