最优装载问题1.doc_第1页
最优装载问题1.doc_第2页
最优装载问题1.doc_第3页
最优装载问题1.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

n1ciwi(20)21ncn1000c655352nw1w2wnnn0wi 1000i=1,2,n31Case #12bestnleftcbestnleftcbestn30-1x1x2xnx1x2xnbestnxi=1ixi=0ibestn4010403502110011n0-11103 5040 10 405 3710 30 24 35 40Case 12 0110Case 22 310100 #include /template class MaxHeap; /template class HeapNode; class bbnode friend void AddLiveNode(MaxHeap&,bbnode*,int,int,int); friend int MaxLoading(int*,int,int ,int *); /friend class adjacencygraph; private: bbnode *parent; / int Lchild; / ; / /template class HeapNode friend void AddLiveNode(MaxHeap&,bbnode*,int,int,int); friend int MaxLoading(int*,int,int,int *); public: operator int() const return uweight; / private: bbnode *ptr; / int uweight; / int level; / ; /template class MaxHeap friend void AddLiveNode(MaxHeap&,bbnode *,int,int,int ); friend int Maxloading(int*,int,int,int*); private: int m; int sz; HeapNode *Hx; public: MaxHeap(int sz) Hx=new HeapNodesz; m=0; /MaxHeap()delete Hx; void insert(HeapNode N) Hxm+1=N; Hxm+1.ptr=N.ptr; Hxm+1.uweight=N.uweight; Hxm+1.level=N.level; m+; HeapNode DeleteMax(HeapNode N) for(int p=1;p=m;p+) int temp=Hx0; / coutHxptemp) temp=Hxp; N=Hxp; N.ptr=Hxp.ptr; N.uweight=Hxp.uweight; N.level=Hxp.level; / coutN.levelendl; return N; ; / / template /H void AddLiveNode(MaxHeap&H,bbnode *E,int wt,int ch,int lev) bbnode *b=new bbnode; b-parent=E; b-Lchild=ch; /coutLchildLchildendl; HeapNode N; N.uweight=wt; N.level=lev; N.ptr=b; H.insert(N); /coutN.levelendl; / / template int MaxLoading(int w,int c,int n,int bestw) MaxHeap H(20); int *r=new intn+1; rn=0; for(int j=n-1;j0;j-) rj=rj+1+wj+1; int i=1; bbnode *E=0; int Ew=0; while(i!=n+1) if(Ew+wi=c) / AddLiveNode(H,E,Ew+wi+ri,1,i+1); AddLiveNode(H,E,Ew+ri,0,i+1); / HeapNode N; N=H.DeleteMax(N); i=N.level; E=N.ptr; Ew=N.uweight-ri-1; coutN.weightN.uweightEw0;x-) bestwx=E-Lchild; /coutparent; / coutEw IS Ewn; int *bestw=new intn+1; int *w=new intn+1; /HeapNode; /MaxHeapHeapNode H; coutPlease input the weight of every bag:endl; for(int j=1;jwj; coutPlease input the maximum we

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论