欢迎来到天天文库
浏览记录
ID:62071210
大小:142.00 KB
页数:19页
时间:2021-04-16
《张晋这样写是不是一下就能搜到.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途矩阵连乘备忘录#include〈iostream〉#include〈cstdio>#include〈cstring〉#define_CRT_SECURE_NO_WARNINGS#pragmawarning(disable:4996)usingnamespacestd;#defineSIZE100#defineINF999999999intm[SIZE];//存放矩阵链的行列信息,m[i-1]和m[i]分别为第i个矩阵的行和列(i=1、2、3。.。)intd[SIZE][SIZE];//存放矩阵链计算的最优值,d[i][j]为第i个矩阵到第j个矩阵的矩阵链的最优值,
2、i>0intBest_DP(intn){//把d[i][i]置为0,1〈=i3、;}个人收集整理勿做商业用途intmain(void){intn;while(scanf("%d”,&n)!=EOF){inti;for(i=0;iusingnamespacestd;template〈classType〉classLoading{//friendTypeMaxLoading(Type[],Type,int,int[]);//private:public:voidBacktrack(int4、i);intn,//集装箱数*x,//当前解*bestx;//当前最优解Type*w,//集装箱重量数组c,//第一艘轮船的载重量cw,//当前载重量bestw,//当前最优载重量r;//剩余集装箱重量};templatevoidLoading〈Type〉::Backtrack(inti);templateTypeMaxLoading(Typew[],Typec,intn,intbestx[]);个人收集整理勿做商业用途intmain(){intn=3,m;intc=50,c2=50;intw[4]={0,10,40,40};intbestx[5、4];m=MaxLoading(w,c,n,bestx);intm2=0;for(intj=1;j〈=n;j++){m2=m2+w[j]*(1—bestx[j]);}if(m2〉c2){cout〈〈”因为m(2)大于c(2),所以原问题无解!"〈n)//到达叶结点{if(cw>bestw){for(intj=1;j〈=n;j++){bestx[j]=x[j];//更新最优解bestw=cw;}}return;}r—=w[i6、];if(cw+w[i]<=c)//搜索左子树{个人收集整理勿做商业用途x[i]=1;cw+=w[i];Backtrack(i+1);cw—=w[i];}if(cw+r〉bestw){x[i]=0;//搜索右子树Backtrack(i+1);}r+=w[i];}template〈classType〉TypeMaxLoading(Typew[],Typec,intn,intbestx[])//返回最优载重量{Loading7、X。r=0;for(inti=1;i<=n;i++){X.r+=w[i];}X.Backtrack(1);delete[]X。x;returnX.bestw;个人收集整理勿做商业用途}搜索算法,回溯法装载问题#include〈iostream>usingnamespacestd;template
3、;}个人收集整理勿做商业用途intmain(void){intn;while(scanf("%d”,&n)!=EOF){inti;for(i=0;iusingnamespacestd;template〈classType〉classLoading{//friendTypeMaxLoading(Type[],Type,int,int[]);//private:public:voidBacktrack(int
4、i);intn,//集装箱数*x,//当前解*bestx;//当前最优解Type*w,//集装箱重量数组c,//第一艘轮船的载重量cw,//当前载重量bestw,//当前最优载重量r;//剩余集装箱重量};templatevoidLoading〈Type〉::Backtrack(inti);templateTypeMaxLoading(Typew[],Typec,intn,intbestx[]);个人收集整理勿做商业用途intmain(){intn=3,m;intc=50,c2=50;intw[4]={0,10,40,40};intbestx[
5、4];m=MaxLoading(w,c,n,bestx);intm2=0;for(intj=1;j〈=n;j++){m2=m2+w[j]*(1—bestx[j]);}if(m2〉c2){cout〈〈”因为m(2)大于c(2),所以原问题无解!"〈n)//到达叶结点{if(cw>bestw){for(intj=1;j〈=n;j++){bestx[j]=x[j];//更新最优解bestw=cw;}}return;}r—=w[i
6、];if(cw+w[i]<=c)//搜索左子树{个人收集整理勿做商业用途x[i]=1;cw+=w[i];Backtrack(i+1);cw—=w[i];}if(cw+r〉bestw){x[i]=0;//搜索右子树Backtrack(i+1);}r+=w[i];}template〈classType〉TypeMaxLoading(Typew[],Typec,intn,intbestx[])//返回最优载重量{Loading7、X。r=0;for(inti=1;i<=n;i++){X.r+=w[i];}X.Backtrack(1);delete[]X。x;returnX.bestw;个人收集整理勿做商业用途}搜索算法,回溯法装载问题#include〈iostream>usingnamespacestd;template
7、X。r=0;for(inti=1;i<=n;i++){X.r+=w[i];}X.Backtrack(1);delete[]X。x;returnX.bestw;个人收集整理勿做商业用途}搜索算法,回溯法装载问题#include〈iostream>usingnamespacestd;template
此文档下载收益归作者所有