简单01背包

来源:互联网 发布:retrofit json实体 编辑:程序博客网 时间:2024/05/17 21:57

优化后的,空间复杂度 O(n)

#include <iostream>using namespace std;int dfs(int *size, int *value, int C, int num) {    int *dp = new int[C+1];    for (int i = 0; i < C+1; i++)        dp[i] = 0;    for (int i = 1; i <= num; i++) {        for (int j = C; j >= size[i]; j--)            dp[j] = max(dp[j], dp[j-size[i]]+value[i]);    }    return dp[C];}int main() {    int num, C;    cin>>num>>C;    int *size = new int[num+1];    int *value = new int[num+1];    for (int i = 1; i <= num; i++)        cin >> size[i] >> value[i];    cout << dfs(size, value, C, num) << endl;    cin>>num;    return 0;}
0 0