标签:
A simple variation to 0-1 Knapsack.
class Solution { public: /** * @param m: An integer m denotes the size of a backpack * @param A: Given n items with size A[i] * @return: The maximum size */ int backPack(int m, vector<int> A) { // for i=1..N // for v=V..0 // f[v]=max{f[v],f[v-c[i]]+w[i]}; // size_t len = A.size(); if (len == 0) return 0; int ret = 0; vector<bool> dp(m + 1, false); dp[0] = true; for (int i = 1; i <= len; i++) for (int v = m; v >= A[i - 1]; v--) { if (dp[v - A[i - 1]]) { dp[v] = true; ret = max(ret, v); } } return ret; } };
标签:
原文地址:http://www.cnblogs.com/tonix/p/4809573.html