poj3624(01背包)裸题

参考博客http://blog.csdn.net/sj13051180/article/details/6687674

关于0-1背包与多重背包讲的很细,适合入门。

贴我的代码:

#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
    int dp[12900];
    int n,m;
    int v[3405];
    int w[3405];
    while(cin >> n >> m){
        for(int j=0;j<=m;j++)
            dp[j]=0;
        for(int i=1;i<=n;i++)
            cin >> w[i] >> v[i];
        for(int i=1;i<=n;i++)
            for(int j=m;j>=w[i];j--)
                dp[j] = max(dp[j],dp[j-w[i]]+v[i]);
        for(int j=0;j<=m;j++){
            cout << dp[j] <<" ";
        }
        cout <<endl;
        cout << dp[m] <<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/markliu/p/2795826.html