敲个采药玩玩

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int w[1001],v[100003],f[1001]={0};
 4 int main()
 5 {
 6     int m,n;
 7     scanf("%d %d",&m,&n); //m容量 n种药材 
 8     for(int i=1;i<=n;++i) 
 9         scanf("%d %d",&w[i],&v[i]);//重量 价值 
10     for(int i=1;i<=n;++i)
11         for(int j=w[i]; j<=m;++j)
12             f[j]=max(f[j],f[j-w[i]]+v[i]); //状态转移方程 
13  
14     printf("%d
",f[m]);
15     return 0;
16 }
原文地址:https://www.cnblogs.com/ranzhong/p/13759463.html