Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct item
- {
- int val, wh;
- };
- int knapsack(int W, std::vector<item> V)
- {
- std::vector<std::vector<int> > DP(2, std::vector<int>(W + 1, 0));
- for (int i = 1; i <= V.size(); i++)
- {
- for (int w = 1; w <= W; w++)
- if(V[i - 1].wh <= w)
- DP[1][w] = (V[i - 1].wh <= w ? std::max(V[i - 1].val + DP[0][w - V[i - 1].wh], DP[0][w])
- : DP[0][w]);
- std::swap(DP[0], DP[1]);
- }
- return DP[0][W];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement