時限:1000ms 記憶體限制:10000k 總時限:3000ms
描述:
需對容量為c 的揹包進行裝載。從n 個物品中選取裝入揹包的物品,每件物品i 的重量為wi ,價值為pi 。對於可行的揹包裝載,揹包中物品的總重量不能超過揹包的容量,最佳裝載是指所裝入的物品價值最高。
輸入:
多個測例,每個測例的輸入佔三行。第一行兩個整數:n(n<=10)和c,第二行n個整數分別是w1到wn,第三行n個整數分別是p1到pn。
n 和 c 都等於零標誌輸入結束。
輸出:
每個測例的輸出佔一行,輸出乙個整數,即最佳裝載的總價值。
輸入樣例:
1 211輸出樣例:2 32 2
3 40 0
14#includeint n ,c,a[20],b[20],f[100];
int package();
int main()
for(i=0;i
for(i=0;i
printf("%d\n",package());
}int package()
揹包問題 c 回溯法求解揹包問題
給定n種物品和乙個揹包。物品i的重量是wi,其價值為pi,揹包的容量為c。應如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大?根據題目所給的資訊可知就是在wi共有5種物品,即n 5 揹包容量c 30 各物品的重量 wi 5 各物品的價值為 p i 所以所求揹包中的物品的價值最大就是 while...
揹包問題 回溯法
0 1揹包 給定n種物品和一揹包。物品i的重量是wi,其價值為vi,揹包的容量為c。問應如何選擇裝入揹包的物品,使得在總重量不超過揹包的容量c的前提下裝入揹包中物品的總價值最大。includeusing namespace std class bag bag bag bag bag void bag...
揹包問題(回溯法)
使用回溯法解決揹包問題 揹包問題,較好的解決方法為動態規劃,但是在不考慮其時間和計算複雜度的情況下,可以使用回溯法解決 也挺方便 思想 遍歷所有的可能結果,不斷嘗試新的物品,如果總價值大於上一次的總價值,即可更新bestvalue變數 在不超過總重量的情況下 程式結果 可以輸入在當前不超重的情況下的...