代码1:
1 #include2 #include 3 using namespace std; 4 const int MIN=0x80000000; 5 const int N=3; //物品数量 6 const int V=5; //背包容量 7 int f[N+1][V+1]; 8 9 int Package(int *W,int *C,int N,int V);10 void main(int argc,char *argv[])11 {12 int W[4]={ 0,7,5,8}; //物品权重13 int C[4]={ 0,2,3,4}; //物品大小14 int result=Package(W,C,N,V);15 if(result>0)16 {17 cout< f[i-1][j-C[i]]+W[i])?f[i-1][j]:(f[i-1][j-C[i]]+W[i]);48 cout<<"f["< <<"]["< <<"]="< <
代码2:
1 代码2 2 3 #include4 #include 5 using namespace std; 6 const int MIN=0x80000000; 7 const int N=3; //物品数量 8 const int V=5; //背包容量 9 int f[V+1];10 11 int Package(int *W,int *C,int N,int V);12 void main(int argc,char *argv[])13 {14 int W[4]={ 0,7,5,8}; //物品权重15 int C[4]={ 0,2,3,4}; //物品大小16 int result=Package(W,C,N,V);17 if(result>0)18 {19 cout< =C[i];j--) //注意此处与解法一是顺序不同的,弄清原因37 {38 f[j]=(f[j]>f[j-C[i]]+W[i])?f[j]:(f[j-C[i]]+W[i]);39 cout<<"f["< <<"]["< <<"]="< <