【Luogu1616】疯狂的采药

题面

完全背包

题解

#include<iostream>
using namespace std;
const int maxn = 100010;
int n, m, c[maxn], w[maxn], f[maxn];
int main(){
    cin>>m>>n;
    for(int i = 1; i <= n; i++)
        cin>>c[i]>>w[i];
    for(int i = 1; i <= n; i++)
        for(int j = c[i]; j <= m; j++)
            f[j] = max(f[j],f[j-c[i]]+w[i]);
    cout<<f[m]<<"\n";
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_33957603/article/details/80150715