集训队作业railway二中骞_第1页
集训队作业railway二中骞_第2页
集训队作业railway二中骞_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、Railway 解骞题目铁路建造(改编自 NWERC2006-题目描述4isitiRailway 解骞题目铁路建造(改编自 NWERC2006-题目描述4isiti4输入nmnm 个可供选择建造的铁路段。n 15,m 50。ma、b、ca 到b(单向c4s t输出 Infeasible方法 品的多物最小费用流,分别从 si 到 ti。用单纯形法来解这个最小费用流既可证明然不会有多个项目共用同一个铁路。那么si ti 有流量为1 的流,就说明项目i 已经完成了si ti 是首先构造的模型所求出来的目标函数的最小值用一定小于等于问题中的最小比0 1且费用就等构造出的模型的最小的目标函数值那。个涉及

2、到单纯形(Simplex) 。程序#include#includeusingconstdoubleeps=1e-且费用就等构造出的模型的最小的目标函数值那。个涉及到单纯形(Simplex) 。程序#include#includeusingconstdoubleeps=1e-MAXSIZE=oo =n,startMAXSIZE, destMAXSIZE; costMAXSIZE,connectMAXSIZE2;boolwrong=doubleMAXSIZE+1,stringvoidscanf(%d%d,&n,&m); string mode;cin i=0; in; i+) scanf(%lf,

3、if (mode = minimize) i=0;in;ci*=-elseif (mode!= wrong=coutmodeisunknown.wrong=coutmodeisunknown.void i=0;im;j=0; j scanf(%lf,i=0;i=; j=0;jn;j+)Am-1j=bm-1= datai= j=0;jn;j+) Aij *= -1;bi*=-void scanf(%d,bool markMAXSIZE+1; memset(mark,false,sizeof(mark);i=0;ik;scanf(%d,&t); markt-1=i=0;in; i+)scanf(%

4、d,bool markMAXSIZE+1; memset(mark,false,sizeof(mark);i=0;ik;scanf(%d,&t); markt-1=i=0;in; i+)if if(n=wrong=f(overflowatthefourthstep.n); marki = true; markn+=true; cn-1 = -ci;j=0;jf(%d%dn,n,m); i=0; in; i+)if(i)f(f(%lf,i=0;im;j=0;jn;f(%lf,f(%lfn,classdouble AMAXSIZE+1MAXSIZE+1, MAXSIZE+1,tbMAXSIZE+1

5、,cMAXSIZE+1,NMAXSIZE+1+1, n, m; double voidscanf(%d%d,classdouble AMAXSIZE+1MAXSIZE+1, MAXSIZE+1,tbMAXSIZE+1,cMAXSIZE+1,NMAXSIZE+1+1, n, m; double voidscanf(%d%d,&n,&m); i=1; i=n; i+)scanf(%lf,&ci); i=1; i=m; i+)j=1; j=n; j+) scanf(%lf,&An+ij);scanf(%lf,void tbe = tAel=i=1;i=N0;i+) if (Ni != e)tAeNi

6、=i=1;i=B0;tbBi=bBi-tABil=-ABie*tAel; j=1; j=N0; j+)if(Nj!=tABiNj = ABiNj-v += tcl= -i=1;i=N0;if(Ni!=tcNi=cNi-i=1;i=N0;if(Ni=if(Ni!=tcNi=cNi-i=1;i=N0;if(Ni=e)Ni=i=1;i=B0;if(Bi=l)Bi=i=1;i=B0;j=1; j=N0; j+) ABiNj=tABiNj;bBi=i=1;i=N0;cNi=boolopt()/falsestands forwhilel, doublemaxUp1;/ie=1;ie=N0; te= if(

7、cte=eps)continue; double delta = oo;tl = MAXSIZE+1; i=1;idoubletemp=if(delta=oo|tempdelta|temp=delta&Bi maxUp)maxUp=delta*cte; l = tl;e = if(maxUp=-1)break; pivot(l, e);returne = if(maxUp=-1)break; pivot(l, e);returnvoid for(p=1; p=B0; p+) if(Bp=0)break;if(p=for(i=1;ieps|A0Ni-eps)break; pivot(0, Ni)

8、;for(p=1; p=N0; p+) if(Np=0)break;i=p;iN0;Ni=N0-boolN0=B0=i=1;i=n;i+) N+N0 = i;i=1;i=m;i+) B+B0=v = l = i=2;i=B0;i+) if (bBi =0)returndouble memcpy(origC,c,sizeof(double)*(n+m+1); N+N0 = 0;i=1;i=B0;i+) ABi0 = -1;memset(c,memcpy(origC,c,sizeof(double)*(n+m+1); N+N0 = 0;i=1;i=B0;i+) ABi0 = -1;memset(c

9、,0,c0=-pivot(l,if(v-eps)returnfalse; memcpy(c,origC,sizeof(double)*(n+m+1); bool inBMAXSIZE+1;memset(inB,false,sizeof(bool)*(n+m+1); i=1; i=B0; i+)inBBi = true; i=1;i=n+m;i+)if(inBi&ci!=v += j=1; j=N0; j+) cNj-=AiNj*ci;ci=returnpublic:voidsimplex(stringinputName,stringfreopen(inputName.c_str(), r, s

10、tdin); freopen(outputName.c_str(),w,stdout); ififelsef(%.0lfn,-voidfreopen(railway.in,r,stdin); scanf(%d%d, &n, &m);i=0;im;scanf(%d%d%d,connecti+0,connecti+1,&costi); voidfreopen(railway.in,r,stdin); scanf(%d%d, &n, &m);i=0;im;scanf(%d%d%d,connecti+0,connecti+1,&costi); i=0;i4;scanf(%d%d,start+i,des

11、t+i); desti-void freopen(orig.in,w,f(%d%dn,4*m,m+(n-2)*4+4); j=0;j4;i=0;im;f(%d,i=0;im;j=0;jm*4;if(j%m=i)f(1elsef(0f(=i=0;i4;j=0;jn;j+)if(j!=starti&j!=k=0;ki;l=0;lm;l+) f(0 );k=0;km;if(connectk0=j)f(1elseif(connectk1=j)pr else prf(0 );k=i+1;k4;l=0;lm;l+) f(0 );f(-1forf(=i=0;i4;k=0;ki;elseif(connectk1=j)pr else prf(0 );k=i+1;k4;l=0;lm;l+) f(0 );f(-1forf(=i=0;i4;k=0;ki;l=0;lm;l+) f(0 );j=0;jm;if(connectj0=starti)pr else prf(0 );f(1f

温馨提示

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

评论

0/150

提交评论