标签:nbsp 完全背包 code main pre span iostream algorithm int
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 const int N=1010; 6 7 int dp[N][N]; 8 int w[N],v[N]; 9 int n,m; 10 11 int main() 12 { 13 cin>>n>>m; 14 15 for(int i=1;i<=n;i++) cin>>v[i]>>w[i]; 16 17 //朴素版完全背包 18 for(int i=1;i<=n;i++) 19 for(int j=0;j<=m;j++) 20 for(int k=1;k*v[i]<=j;k++) 21 dp[i][j]=max(dp[i][j],dp[i-1][j-k*v[i]]+w[i]*k); 22 23 /* 复杂度优化后完全背包 24 for(int i=1;i<=n;i++) 25 for(int j=0;j<=m;j++) 26 { 27 dp[i][j]=dp[i-1][j]; 28 if(j>=v[i]) 29 dp[i][j]=max(dp[i][j],dp[i-1][j-v[i]]+w[i]); 30 }*/ 31 32 /* 降维优化完全背包 33 for(int i=1;i<=n;i++) 34 for(int j=v[i];j<=m;j++) 35 dp[j]=max(dp[j],dp[j-v[i]]+w[i]); 36 */ 37 printf("%d",dp[n][m]); 38 return 0; 39 }
标签:nbsp 完全背包 code main pre span iostream algorithm int
原文地址:https://www.cnblogs.com/HYfeng-yanwu/p/13949256.html