资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
回溯法装载问题#include using namespace std; class Loading friend int MaxLoading(int ,int ,int ,int ); private: /int Bound(int i); void Backtrack(int t); int n;/集装箱数 int *x;/当前解 int *bestx;/当前最优解 int *w;/集装箱重量数组 int c;/第一艘轮船的载重量 int cw;/当前重量 int bestw;/当前最优载重量 int r;/剩余集装箱重量 ; void Loading:Backtrack(int i) if(in) if(cwbestw) for(int j=1;j=n;j+) bestxj=xj; bestw=cw; return; r-=wi; if(cw+wibestw) xi=0; Backtrack(i+1); r+=wi; int MaxLoading(int w,int c,int n,int bestx) Loading X; X.x=new intn+1; X.w=w; X.c=c; X.n=n; X.bestx=bestx; X.bestw=0; X.cw=0; X.r=0; for(int i=1;i=n;i+) X.r+=wi; X.Backtrack(1); delete X.x; return X.bestw; void main() int *w; int *bestx; int n; int c; coutn; coutc; w=new intn+1; w0=0; cout请输入重量:wi; bestx=new intn+1; for(i=1;i=n;i+) bestxi=0; int m=MaxLoading(w,c,n,bestx); cout最大装载数量:本文档来源于第一文库网:https:/www.wenku1.net/news/7EFF788D65D47A86.html
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号