题解 | #采药#
采药
https://www.nowcoder.com/practice/d7c03b114f0541dd8e32ce9987326c16
#include <iostream> using namespace std; #define maxn 1001 int w[maxn]; int v[maxn]; int dp[maxn]; int main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF){ for(int i=0;i<n;i++){ scanf("%d%d",&w[i],&v[i]); } for(int i=0;i<=m;i++){ dp[i]=0; } for(int i=0;i<n;i++){ for(int j=m;j>=w[i];j--){ dp[j]=max(dp[j],dp[j-w[i]]+v[i]); } } printf("%d",dp[m]); } return 0; }