洛谷 P2871 [USACO07DEC]手链 Charm Bracelet

简单的01背包
可以去记住模板

特别注意:
- i 和 j 是怎么循环的
- j 要保证大于等于 那什么 怎样才可以相减

//P2871 [USACO07DEC]手链 Charm Bracelet 
//2016.11.15

#include 
#include 
#define MAXN 50000 + 1
using namespace std;

int n, m, c, v;
int f[MAXN] = {0};

int main(){
    scanf("%d%d", &n, &m);

    for (int i = 1; i <= n; i++)
    {
//      for (int i = 1; i <= m; i++)
//      cout << f[i] << ' ';
//      cout << endl; 

        scanf("%d%d", &c, &v);
        for (int j = m; j >= c; j--)
            f[j] = max(f[j], f[j - c] + v);
    }

//  for (int i = 1; i <= m; i++)
//      cout << f[i] << ' ';

    cout << f[m];

    return 0;
}

你可能感兴趣的:(洛谷)