1. 程式人生 > >遞迴實現揹包問題

遞迴實現揹包問題

*揹包1,遞迴的揹包無法改成迴圈

 

*遞迴的解法

 

*遞推的解法(記錄遞迴)

 

*多約束條件的揹包問題

大體的框架就是:

try {

   1.包含第i件物品

         1.1 遞迴至底

         1.2 產生一個新方案

===============================

   2.不包含第i件物品

         2.1 遞迴至底

         2.2 產生一個新方案

}

實質上就是一顆滿二叉樹的中序遍歷。只不過中途要減去很多不滿足條件的分支。

                                    root

                                    |  |

                                  --    --

                               inc 1     N.inc1

                               |   |     |    |

                             --    --   --     --

                           inc2   N.inc2 inc2   N.inc2

                                    ... ...

value 要求最大值 所以先全部加起來,再減去不合適的

weight 要求最小值 所以從0開始加上來