动态程序设计.docVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态程序设计

[例题1]求最大连续子序列的和 输入: n(n≤500); n个整数; 输出:该序列中最大的连续子序列的和max。 {$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R+,S-,T-,U-,V+,W-,X+,Y+,Z1} {$MINSTACKSIZE {$MAXSTACKSIZE {$IMAGEBASE {$APPTYPE GUI} program ex11_1; {$APPTYPE CONSOLE} uses SysUtils; const infile=ex11_1.in; outfile=ex11_1.out; var n,i:integer; j,m,max:longint; f,f0:text; begin // Insert user code here assign(f,infile); reset(f); assign(f0,outfile); rewrite(f0); repeat readln(f,n); read(f,m); max:=m; for i:=2 to n do begin read(f,j); if m0 then m:=m+j else m:=j; if mmax then max:=m end; writeln(f0,max) until seekeof(f); close(f); close(f0) end. [例题2]2台处理机A和B承担n个作业的任务。设第I个作业交给机器A处理时需要ai时间,交给机器B处理时需要bi时间。由于各作业的特点和机器性能的关系,很可能对于某些I有ai≥bi,而对于某些作业j(j≠i)有aibj,既不能将一个作业分开由两台机器处理也没有一台机器能同时处理2个作业。计算和输出2台机器处理n个作业的最短时间,即任何一台机器开工到最后一台机器停工的总时间最短。 program ex11_2; {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R+,S+,T-,V+,X+,Y+} {$M 16384,0,655360} program ex11_2; const mx=100; var n,i:integer; al,bl,bt:real; a,b:array[1..mx]of real; f,f0:text; function max(a,b:real):real; begin if a=b then max:=a else max:=b end; procedure search(nw:integer;na,nb:real); begin if max(na,nb)=bt then exit; if nw=n+1 then begin bt:=max(na,nb); exit end; if max(na+a[nw],nb)=max(na,nb+b[nw]) then begin search(nw+1,na+a[nw],nb); search(nw+1,na,nb+b[nw]) end else begin search(nw+1,na,nb+b[nw]); search(nw+1,na+a[nw],nb) end end; begin assign(f,ex11_2.in); reset(f); assign(f0,ex11_2.out); rewrite(f0); while not seekeof(f) do begin readln(f,n); al:=0; bl:=0; for i:=1 to n do begin readln(f,a[i],b[i]); if a[i]=b[i] then al:=al+a[i]

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档