洛谷P1616 疯狂的采药
1 //完全背包 2 #include<bits/stdc++.h> 3 using namespace std; 4 const int maxv=100005; 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=v[i];j<=m;++j)//从v[i]开始 13 f[j]=max(f[j],f[j-v[i]]+w[i]); 14 printf("%d",f[m]); 15 return 0; 16 }