多重揹包
(backpack.cpp/c/pas)
(1s/256m)
題目描述
提供乙個揹包,它最多能負載重量為w的物品。
現在給出n種物品:對於第i類物品,一共有ci件物品;對於每一件物品,重量為wi,價值為vi。
找出一種裝載方式使得揹包中的物品總價值最大。
輸入格式(backpack.in)
第一行兩個整數n,w,代表物品的種類與揹包的總負重。
第2~n+1行,每行三個整數wi, vi, ci,代表第i種物品的重量、價值與數量。
輸出格式(backpack.out)
僅一行,乙個整數v,代表最大的總價值。
樣例輸入
3 95 8 2
3 6 2
2 1 5
樣例輸出
資料範圍與限制
1<=n<=20, 0<=w<=1000
1<=wi<=100, 0<=vi<=100, 0<=ci<=100
多重揹包:
1.動態規劃
2.dfs
1 #include 2 #include 3using
namespace
std;
4const
int n = 25;5
intn, t;
6int
w[n], v[n], c[n];
7int
ans;
8void dfs(int x, int totw, int
totv)915
for(int i=0; i<=c[x] && totw + w[x]*i <= t; i++)
16 dfs(x+1, totw + w[x]*i, totv + v[x]*i);17}
18int
main()
19
第一天刷題
給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例1 輸入 l1 2 4,3 l2 5 6,4 輸出...
正式北漂第一天!當天總結!
今天的筆試題發到手中的時候其實心裡就有了答案,今天的筆試肯定通過不了,有多難嗎?貌似並沒有,但是涉及到了先前從來沒有涉及到的問題,沒有想象中的物件導向特性,重寫過載,string stringbuilder stringbuffer等各種簡單的問題,讓我充分的正視了自己,這個地方是首都,並不是原來的...
leetcode刷題第一天
給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。class solution def addtwonumbers se...