洛谷P1060 开心的金明

 1 //01背包 价值等于重要度乘体积 
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 const int maxv=30005;
 5 const int maxn=10005;
 6 int n,m,v[maxn],w[maxn],f[maxv];
 7 int main()
 8 {
 9     scanf("%d%d",&m,&n);
10     for(int i=1;i<=n;++i) scanf("%d%d",&v[i],&w[i]);
11     for(int i=1;i<=n;++i)
12         for(int j=m;j>=1;--j)
13             if(j>=v[i]) f[j]=max(f[j],f[j-v[i]]+v[i]*w[i]);
14     printf("%d",f[m]);
15     return 0;
16 }
原文地址:https://www.cnblogs.com/yu-xing/p/10313860.html