題目:一輛購物車容量為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,...