回溯 0 1揹包 大賣場購物車

2021-09-17 04:42:29 字數 782 閱讀 1135

題目:一輛購物車容量為w,總共有n個物品,第i個物品對應價值vi,重量wi,不可拆分,如何選取物品使購物車裝入物品價值最大。

解題思路:本題很直觀的用貪心解決比較簡單,但這藉此寫一下回溯演算法。

#include #includeusing namespace std;

#define m 105

int i,j,n,w; //n表示物品數量,w表示購物車容量

double w[m],v[m]; //重量,價值

bool x[m]; //x[i]=1表示第i個物品放進購物車

double cw=0; //當前重量

double cp=0; //當前價值

double bestp=0; //當前最優值

bool bestx[m]; //最優解

double bound(int i) //計算剩餘物品裝滿時所能獲得最大價值

if(cw+w[t]<=w) //滿足條件則搜尋左節點

if(bound(t+1)>bestp) //滿足條件則搜尋右節點

}int main()

if(sumw<=w)

cout

backtrack(1);

cout

if(bestx[i]==1)

printf("%d ",i);

return 0;

}

大賣場購物車(題解)

央視有乙個大型娛樂節目 購物街,舞台上模擬超市大賣場,有很多貨物,每個嘉賓分配乙個購物車,可以盡情地裝滿購物車,購物車中裝的貨物價值最高者取勝。假設有 n 個 物品和 1 個購物車,每個物品 i 對應價值為 vi,重量 wi,購物車的容量為 w 你也可以將重 量設定為體積 每個物品只有 1 件,要麼...

回溯演算法之購物車 0 1 揹包問題

央視有乙個大型娛樂節目 購物街,舞台上模擬超市大賣場,有很多貨物,每個嘉賓分配乙個購物車,可以盡情的裝滿購物車,購物車裝的價值最高者取勝。假設 n 個物品和 1個購物車,每個物品 i 對應價值為 v i,重量 w i,購物車的容量為 w 你也可以將重量設定為體積 每個物品只有一件,要麼裝入,要麼不裝...

Python01小購物車作業

author ocean practice makes perfect date 2018 3 30 print 歡迎使用購物車程式 salary 5000 list iphone6s mac book coffee python book bicyle price 5800,9000,32,80,...