NC16666 开心的金明

\(01\)背包裸题

const int N=10010,M=30010;
int f[M];
int a[N],b[N];
int n,m;

int main()
{
    cin>>m>>n;

    for(int i=1;i<=n;i++) cin>>a[i]>>b[i];

    for(int i=1;i<=n;i++)
        for(int j=m;j>=a[i];j--)
            f[j]=max(f[j],f[j-a[i]]+a[i]*b[i]);

    cout<<f[m]<<endl;

    //system("pause");
}
原文地址:https://www.cnblogs.com/fxh0707/p/13757473.html