b184: 5. 裝貨櫃問題

Tags: knapsack


出處:https://zerojudge.tw/ShowProblem?problemid=b184
提交:https://zerojudge.tw/Submissions?problemid=b184&account=allllllan123456


問題:給你一些物品各自的重量 $\in[1,100]$ 與價值 $\in[1,60000]$,請問應該選入哪些物品到限重 100 的背包中才能最大化背包的價值?


解法:經典背包問題,可參閱本站對於該問題的解析。


 1#include <bits/stdc++.h>
 2using namespace std;
 3
 4int main() { ios_base::sync_with_stdio(false); cin.tie(0); // IO 優化
 5    int dp[101], n;
 6    while (cin >> n) {
 7        memset(dp, 0, sizeof dp);
 8        while (n--) {
 9            int w, v; cin >> w >> v;
10            for (int i=100; i>=w; i--)
11                if (dp[i-w] + v > dp[i])
12                    dp[i] = dp[i-w] + v;
13        }
14        cout << dp[100] << '\n';
15    }
16    return 0;
17}

no image