洛谷P1048 采药

放题解

题目传送门

 

放代码

#include<bits/stdc++.h>
using namespace std;
int m,n;
int w[101],c[101];
int f[101][1001];

int main()
{
    cin>>m>>n;
    for(int i=1;i<=n;i++)
    cin>>w[i]>>c[i];
    for(int i=1;i<=n;i++)
        for(int v=m;v>0;v--)
            if(w[i]<=v)    f[i][v]=max(f[i-1][v],f[i-1][v-w[i]]+c[i]);
            else f[i][v]=f[i-1][v];
    cout<<f[n][m];
    return 0;
}

 

posted @ 2019-04-30 16:52  琥珀の泪  阅读(146)  评论(0编辑  收藏  举报