蒜頭君去超市購物,他有乙隻容量為 vv
v 的購物袋,同時他買了 nn
n 件物品,已知每件物品的體積 viv_ivi
。蒜頭君想知道,挑選哪些物品放入購物袋中,可以使袋子剩餘的空間最小。
第一行輸入乙個整數 vv
v(1≤v≤20,0001 v \leq 20,0001≤
v≤20
,000
),表示購物袋的容量。
第二行輸入乙個整數 nn
n(1≤n≤301 \leq n \leq 301≤
n≤30
),表示蒜頭君購買的 nn
n 件物品。
接下來輸入 nn
n 行,每行輸入乙個整數 viv_ivi
(1≤vi≤10,0001 \leq v_i \leq 10,0001≤
vi≤
10,0
00),表示第 ii
i 件物品的體積。
輸出一行,輸出乙個整數,表示購物袋最小的剩餘空間。
樣例輸入
2057樣例輸出5737
1
典型的01揹包問題
#include #include #include int main(int argc, char *argv)
for(i=1;i<=n;i++)
}} printf("%d",v-max2);
return 0;
}int max (int a,int b)
else
}
計蒜客 蒜頭君的購物袋2
問題描述 蒜頭君去超市購物,他有乙隻容量為 v 的購物袋,同時他想買 n 件物品,已知每件物品的體積 vi和重要度 pi。蒜頭君想知道,挑選哪些物品放入購物袋中,可以使得買到的物品重要度之和最大,且物品體積和不超過購物袋的容量。輸入格式 第一行輸入兩個整數 v 1 v 1000 和 n 1 n 10...
計蒜客 蒜頭君的購物袋3
問題描述 蒜頭君去超市購物,他有乙隻容量為 v 的購物袋,同時他想買 nn 種物品,已知每種物品的體積 vi和重要度 pi 蒜頭君想知道,怎麼挑選物品放入購物袋中,可以使得買到的物品重要度之和最大,且物品體積和不超過購物袋的容量。注意超市中每種物品的數量無限多。輸入格式 第一行輸入兩個整數 n,v ...
蒜頭君的購物袋3 (完全揹包)
問題描述 蒜頭君去超市購物,他有乙隻容量為 v 的購物袋,同時他想買 nn 種物品,已知每種物品的體積 vi和重要度 pi 蒜頭君想知道,怎麼挑選物品放入購物袋中,可以使得買到的物品重要度之和最大,且物品體積和不超過購物袋的容量。注意超市中每種物品的數量無限多。輸入格式 第一行輸入兩個整數 n,v ...