有n种物品和一个容量为m的背包,每种物品都有无限件可用。
第i种物品的体积是weight,价值是value。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。
1 //"n" is the number of kinds. 2 //"m" is the capacity of the bag. 3 //w[]:weight , v[]:value . 4 5 for(int i=1 ; i <= n ; i++) { 6 for(int val=0 ; val<=m ; val++) { 7 if( val >= w[i] ) dp[val] = max( dp[val] , dp[ val-w[i] ]+v[i] ); 8 } 9 }
时间: 2024-11-09 03:12:19