写动态规划代码的关键在于状态定义和状态转移方程。在0-1背包问题中,我们定义的状态是status[i]就是当前决策结束后到达的重量,而转移方程就是if ( status[j] == 1) status[j+weight[i]] = 1;
#define N 5 //物品种类数目 #define CAPACITY 6 //背包容量 #define COUNT 32 intweight[N]={3,2,1,4,5}; intvalue[N]={25,20,15,40,50}; union{ unsignedcharstate; struct_FLAG{ unsignedchargood_1_flag:1; unsignedchargood_2_flag:1; unsignedchargood_3_flag:1; unsignedchargood_4_flag...