0-1背包模板

#include <iostream>
#define V 2010
using namespace std;
int weight[V];
int value[V];
int f[V][V + 1];
int main() {
    int n, m;
    while(cin >>m>>n)
    {
        for (int i = 1; i <= n; i++) {
            cin >> weight[i] >> value[i];
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                    if (weight[i] > j) {
                    f[i][j] = f[i - 1][j];
                }
                else {
                        f[i][j] = f[i - 1][j] > f[i - 1][j - weight[i]] + value[i] ? f[i - 1][j] : f[i - 1][j - weight[i]] + value[i];
                }
            }
        }    
        cout << f[n][m] << endl;
    }
}

 

posted @ 2018-10-22 11:07  ccsu_deer  阅读(106)  评论(0编辑  收藏  举报