《趣学算法》动态规划
2019-11-30 10:05:54 #include <bits/stdc++.h> #include <stdlib.h> #include <stdio.h> using namespace std; #define maxn 10005 #define M 105 int c[M][maxn]; int w[M],v[M]; int x[M];//x[M]表示第i个物品是否放入购物车 int main(){ int i,j,n,W; cout<<"请输入物品的个数: "; cin>> n; cout<<"请输入购物车的容量:"; cin>>W; cout<<"请输入每个物品的重量w 和 价值 v,用空格分开:"; for(int i=1;i<=n;++i){ cin>>w[i]>>v[i]; } for(i=0;i<=n;++i){ c[i][0]=0; } for(j=0;j<=W;++j){ c[0][j] = 0; } for(i=1;i<=n;++i){ for(int j=1;j<=W;++j){ if(j<w[i]){//当物品重量大于购物车容量时,不放入 c[i][j] = c[i-1][j]; } else{ c[i][j] = max(c[i-1][j],c[i-1][j-w[i]]+v[i]); } } } cout<<"装入购物车的最大价值为: "<