您的位置首页百科问答

背包问题(C语言)

背包问题(C语言)

我copy一下别人的递归算法,假如你有时间限时的话,那我就用动态规划帮你重新code一个#include #define N 100 //物品总种数不是常量,没法根据它来决定数组的长度,只有先定义个拦运滚长度了 int n;//物品总种数 double limitW;//限制的总重简余量 double totV;//全部物品的总价值 double maxv;//解的总价值 int option[N];//解的选择 int cop[N];//当前解的选择 struct {//物品结构 double weight; double value; }a[N]; //参数为物品i,当前选择已经达到的重量和tw,本方案可能达到的总价值 void find(int i,double tw,double tv) { int k; //物品i包含在当前方案的可能性 if(tw+a[i].weight <= limitW){ cop[i]=1; if(imaxv){ if(i