17 4 28 清北第一天水題

2022-04-30 07:03:12 字數 1124 閱讀 9952

多重揹包

(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 3

using

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...