- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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]
您可能关注的文档
最近下载
- DB41T 2431-2023 重点区域地质灾害风险调查评价规范(1:10000).docx VIP
- 2012 INTERNATIONAL BUILDING CODE (2012年国际建筑规范).pdf VIP
- 金龙湖养老度假基地可行性报告.doc VIP
- 光伏发电工程施工规范.docx VIP
- 渗透检测工艺规程.pptx VIP
- 质量员考试(市政质量)基础知识试卷真题(2025年新版附解析).docx VIP
- 幼儿园课件:变焦PPT.ppt
- KEF音响无线HiFi扬声器LS50 Wireless II用户手册.pdf VIP
- 一种低气味、低刺激双固化胶粘剂及其制备方法.pdf VIP
- 设计机构设置和岗位职责.docx VIP
文档评论(0)