亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

P03: 多重背包問題

2019-11-10 18:20:56
字體:
來源:轉載
供稿:網友

題目

有N種物品和一個容量為V的背包。第i種物品最多有n[i]件可用,每件費用是c[i],價值是w[i]。求解將哪些物品裝入背包可使這些物品的費用總和不超過背包容量,且價值總和最大。

基本算法

這題目和完全背包問題很類似。基本的方程只需將完全背包問題的方程略微一改即可,因為對于第i種物品有n[i]+1種策略:取0件,取1件……取n[i]件。令f[i][v]表示前i種物品恰放入一個容量為v的背包的最大權值,則有狀態轉移方程:

f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0<=k<=n[i]}

復雜度是O(V*Σn[i])。

轉化為01背包問題

另一種好想好寫的基本方法是轉化為01背包求解:把第i種物品換成n[i]件01背包中的物品,則得到了物品數為Σn[i]的01背包問題,直接求解,復雜度仍然是O(V*Σn[i])。

但是我們期望將它轉化為01背包問題之后能夠像完全背包一樣降低復雜度。仍然考慮二進制的思想,我們考慮把第i種物品換成若干件物品,使得原問題中第i種物品可取的每種策略——取0..n[i]件——均能等價于取若干件代換以后的物品。另外,取超過n[i]件的策略必不能出現。

方法是:將第i種物品分成若干件物品,其中每件物品有一個系數,這件物品的費用和價值均是原來的費用和價值乘以這個系數。使這些系數分別為1,2,4,...,2^(k-1),n[i]-2^k+1,且k是滿足n[i]-2^k+1>0的最大整數。例如,如果n[i]為13,就將這種物品分成系數分別為1,2,4,6的四件物品。

分成的這幾件物品的系數和為n[i],表明不可能取多于n[i]件的第i種物品。另外這種方法也能保證對于0..n[i]間的每一個整數,均可以用若干個系數的和表示,這個證明可以分0..2^k-1和2^k..n[i]兩段來分別討論得出,并不難,希望你自己思考嘗試一下。

這樣就將第i種物品分成了O(log n[i])種物品,將原問題轉化為了復雜度為<math>O(V*Σlog n[i])的01背包問題,是很大的改進。

下面給出O(log amount)時間處理一件多重背包中物品的過程,其中amount表示物品的數量:

PRocedure MultiplePack(cost,weight,amount)    if cost*amount>=V        CompletePack(cost,weight)        return    integer k=1    while k<amount        ZeroOnePack(k*cost,k*weight)        amount=amount-k        k=k*2    ZeroOnePack(amount*cost,amount*weight)

希望你仔細體會這個偽代碼,如果不太理解的話,不妨翻譯成程序代碼以后,單步執行幾次,或者頭腦加紙筆模擬一下,也許就會慢慢理解了。

O(VN)的算法

多重背包問題同樣有O(VN)的算法。這個算法基于基本算法的狀態轉移方程,但應用單調隊列的方法使每個狀態的值可以以均攤O(1)的時間求解。由于用單調隊列優化的DP已超出了NOIP的范圍,故本文不再展開講解。我最初了解到這個方法是在樓天成的“男人八題”幻燈片上。

小結

這里我們看到了將一個算法的復雜度由O(V*Σn[i])改進到O(V*Σlog n[i])的過程,還知道了存在應用超出NOIP范圍的知識的O(VN)算法。希望你特別注意“拆分物品”的思想和方法,自己證明一下它的正確性,并將完整的程序代碼寫出來。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人久久久久久久久久| 亚洲国产精品成人精品| 亚洲国产精品高清久久久| 欧美性精品220| 欧美性猛交xxxx富婆弯腰| 日韩欧美有码在线| 国产精品福利网站| 亚洲在线免费看| 国产精品国产自产拍高清av水多| 日韩视频欧美视频| 国模私拍视频一区| 奇米一区二区三区四区久久| 成人高h视频在线| 久久99久久99精品中文字幕| 亚洲国产精品yw在线观看| 成人美女免费网站视频| 日韩中文字幕在线| 中文字幕亚洲综合久久筱田步美| 亚洲一区av在线播放| 欧美国产中文字幕| 欧美午夜片在线免费观看| 亚洲美女精品久久| 日韩精品免费一线在线观看| 国产精品久久久久77777| 亚洲变态欧美另类捆绑| 91久久精品视频| 91禁国产网站| 日韩一区二区欧美| 中文字幕久久久av一区| 亚洲精品福利在线| 精品久久久久久中文字幕一区奶水| 日本久久亚洲电影| 亚洲天堂免费观看| 青青精品视频播放| 国产精品视频导航| 一二美女精品欧洲| 日韩国产在线看| 久久久电影免费观看完整版| 萌白酱国产一区二区| 亚洲精品在线91| 国产成人极品视频| 92国产精品视频| 国产日韩精品电影| 亚洲大胆美女视频| 97人人爽人人喊人人模波多| 国产一区私人高清影院| 成人免费在线视频网站| 国产成人自拍视频在线观看| 97在线免费观看| 久久好看免费视频| 亚洲女人天堂成人av在线| 国产精品久久久久免费a∨| 国产精品成人一区| 国产亚洲欧洲黄色| 不卡av电影院| 国产精品都在这里| 91精品久久久久久久久久另类| 全亚洲最色的网站在线观看| 2019中文字幕在线| 亚洲色图25p| 97久久精品人人澡人人爽缅北| 欧美性生交大片免网| 欧美精品videosex性欧美| 欧美国产日本高清在线| 成人免费看吃奶视频网站| 久久av红桃一区二区小说| 欧美国产日韩一区二区在线观看| 日韩视频在线观看免费| 亚洲精品aⅴ中文字幕乱码| 成人国产精品久久久久久亚洲| 欧美人与性动交a欧美精品| 国产精品激情自拍| 日韩成人av一区| 国产91精品不卡视频| 亚洲精品网站在线播放gif| 成人网在线免费观看| 精品亚洲aⅴ在线观看| 日韩av片电影专区| 久久久这里只有精品视频| 日韩欧美亚洲国产一区| 久久99热这里只有精品国产| 国产精品久久久久秋霞鲁丝| 91国偷自产一区二区三区的观看方式| 激情懂色av一区av二区av| 国产精品91久久久| 国产精品成熟老女人| 日本久久久久亚洲中字幕| 萌白酱国产一区二区| 韩日精品中文字幕| 国产精品69精品一区二区三区| 成人免费淫片视频软件| 91久久久久久久一区二区| 久久久精品在线观看| 91理论片午午论夜理片久久| 伊人成人开心激情综合网| 欧美日韩国产一区二区| 中文国产亚洲喷潮| 国产一区二区黑人欧美xxxx| 日韩大陆毛片av| 一区二区三区四区精品| 日韩成人网免费视频| x99av成人免费| 国产精品久久在线观看| 亚洲精品国产免费| 久久久久久噜噜噜久久久精品| 伦理中文字幕亚洲| 欧美日韩国产中字| 91久久久国产精品| 久久亚洲私人国产精品va| 国产精品羞羞答答| 久久久成人精品视频| 欧美视频专区一二在线观看| 亚洲免费成人av电影| 国产精品久久中文| 欧美激情欧美激情在线五月| 成人午夜小视频| 中文字幕9999| 九九精品在线观看| 国产精品毛片a∨一区二区三区|国| 成人激情在线播放| 国产欧美日韩精品丝袜高跟鞋| 欧美亚洲午夜视频在线观看| 97国产精品久久| 欧美精品九九久久| 国产在线观看91精品一区| 亚洲一区国产精品| 啪一啪鲁一鲁2019在线视频| 国内精品久久久久影院优| 亚洲欧美综合区自拍另类| 欧美精品一区三区| 亚洲国产私拍精品国模在线观看| 2019中文字幕全在线观看| 亚洲视频在线播放| 亚洲自拍中文字幕| 亚洲激情视频网站| 欧美精品免费在线| 中文字幕av一区二区三区谷原希美| 自拍偷拍亚洲一区| 操日韩av在线电影| 在线观看中文字幕亚洲| 深夜成人在线观看| 91免费精品国偷自产在线| 日韩在线观看高清| 久久精品亚洲一区| 精品国内产的精品视频在线观看| 色偷偷91综合久久噜噜| 亚洲成人av中文字幕| 日韩人在线观看| 国内免费精品永久在线视频| 国产精品羞羞答答| 精品亚洲一区二区三区四区五区| 国产精品美女久久久久久免费| 国产精品一区二区3区| 国产精品黄色影片导航在线观看| 欧美高清无遮挡| 亚洲三级黄色在线观看| 亚洲精品电影在线观看| 欧美黑人一级爽快片淫片高清| 伊人久久男人天堂| 国产日韩在线看| 一区二区中文字幕| 国产精品丝袜高跟| 日韩av电影在线免费播放| 成人欧美在线观看|