关于动态规划,其核心就是dp的操作
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 using namespace std; 5 int dp[120]; 6 int weight[1100]; 7 int value[1100]; 8 int main() 9 { 10 int n,m; 11 cin>>m>>n; //n为件数,m为最大容量 12 for(int i=1;i<=n;i++) 13 { 14 cin>>weight[i]>>value[i]; 15 } 16 for(int i=1;i<=n;i++) //通过n次遍历来更新dp 17 for(int j=m;j>=weight[i];j--) 18 dp[j]=max(dp[j],dp[j-weight[i]]+value[i]); //每一次取当前能装的最大价值 19 cout<<dp[m]<<endl; 20 return 0; 21 }