[动态规划] 洛谷P1048 采药 (01背包裸题)

题目

LP1048

思路

01背包裸题,不赘述

代码

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define _for(i,a,b) for(int i = (a); i<(b); i++)
#define _rep(i,a,b) for(int i = (a); i<=(b); i++)
using namespace std;

const int maxn = 1000+10;
int n, TT, d[maxn];

int main(){
    scanf("%d%d",&TT,&n);
    int V,W;
    _rep(i,1,n){
        scanf("%d%d",&V,&W);
        for(int j = TT; j>=0; j--)
            if(j >= V)
                d[j] = max(d[j],d[j-V]+W);
    }
    printf("%d\n",d[TT]);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/icecab/article/details/80768365