已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动态程序设计,动态规划,与递归程序相类,将对问题求解分解为对子问题求解;不同之处在于把子问题的解存起来,用空间换时间。例:fibonacci数f(0)=0;f(1)=1;f(n)=f(n-1)+f(n-2);递归:f(n-1)和f(n-2)分别求到底一次动态规划:用数组将前n-1个数存起来,每次只用一个加法fn=fn-1+fn-2即可。,例最短路径问题。下图中给出一个地图,地图中每个顶点代表一个城市,两个城市之间的连线表示道路,连线上的数值代表道路的长度。现在,想从城市a到城市e,怎样走路程最短,最短路程的长度是多少?现在,我们想从城市a到达城市e。怎样走才能使得路径最短,最短路径的长度是多少?,设:disx为城市x到城市e的最短路径长度(x表示任意一个城市);mapi,j表示i,j两个城市间的距离,若mapi,j=0,则两个城市不通。我们可以使用回溯来计算disx:,vars:未访问的城市聚合;functionsearch(who):integer;求城市who与城市e的最短距离vari,j,min:integer;beginifwho=ethensearch:=0elsebeginmin:=maxint;fori取遍所有城市doif(mapwho,i0)and(iins)thenbegins:=s-i;城市i已访问j:=mapwho,i+search(i);计算城市e至城市who的路径长度s:=s+i;恢复城市i未访问状态ifjfi+1,j+1thenfi,j:=fi+1,j+ai,jelsefi,j:=fi+1,j+1+ai,j;end;,programtriple;constfin=d:input.txt;fon=d:output.txt;maxn=100;varf,a:array1.maxn,1.maxnofinteger;n:integer;procedureinit;vari,j:integer;beginassign(input,fin);reset(input);readln(n);fori:=1tondobeginforj:=1toidoread(ai,j);readln;end;close(input);end;proceduremain;vari,j:integer;beginfori:=1tondofn,i:=an,i;fori:=n-1downto1doforj:=1toidoiffi+1,jfi+1,j+1thenfi,j:=fi+1,j+ai,jelsefi,j:=fi+1,j+1+ai,j;end;procedureprint;vari,ans:integer;beginassign(output,fon);rewrite(output);writeln(f1,1);close(output);end;begininit;main;print;end.,例2,给定数列a1,a2,an,求最长递减子序列。输入数据n和n个整数(nai;边界条件:s0=0;answer=maxsi,1=i=n。,a:76896201918693,s:122323425,算法分析,ai=数列的第i个数;si=以ai结尾的最长递减子序列长度;,a:76896201918693,s:122323425,状态转移方程:si=maxsk+10ai;边界条件:s0=0;answer=maxsi,1si)thensi:=sk+1;if(sianswer)thenanswer:=si;end;writeln(answer);,si=maxsk+10ai;边界条件:s0=0;answer=maxsi,1si)thensi:=sk+1;if(sianswer)thenanswer:=si;end;writeln(answer);end.,programex6_2_2;varn,i,k,answer:integer;a:array1.1000ofinteger;s,last:array0.1000ofinteger;size:integer;q:array1.1000ofinteger;beginread(n);fori:=1tondoread(ai);s0:=0;answer:=0;fori:=1tondobeginsi:=0;fork:=0toi-1doif(k=0)or(akai)and(sk+1si)thenbeginsi:=sk+1;lasti:=k;end;end;,fori:=1tondoif(sianswer)thenbeginanswer:=si;k:=i;end;size:=0;repeatinc(size);qsize:=k;k:=lastk;untilk=0;writeln(answer);fori:=sizedownto1dowrite(qi,);writeln;end.,转移方程,数的计算(02):fi:=1+f1+f2+fidiv2过河卒(02):fi,j=fi-1,j+fi,j-1栈(noip2003):fi,j=fi-1,j+1+fi-1,j;传球游戏(08):fi,k:=fi-1,k-1+fi+1,k-1;装箱问题(01):f(x)=maxf(x-wi)+ui当x=wi,1=i=n采药(05):f(i,x)=max(f(i,x-wi)+ui,f(i-1,x);f(n,m)开心的金明(06)摆花(12):fi,j:=(fi,j+fi-1,j-k)mod1000007数字游戏(03):fmin1p,i,j=minfmin1p-1,i,k*gk+1,j(i=k=j-1)fmax1p,i,j=maxfmax1p-1,i,k*gk+1,j(i=k=j-1)乘积最大(00):合并类道路游戏(09):f(i)=maxf(x-1)-cost(posk,x)+sumk,i-sumk,x-1|i-p=xi,1=i=m,0=k=n守望者的逃离(07)表达式的值(11):,树型动态规划,四、最大利润题目描述政府邀请了你在火车站开饭店,但不允许同时在两个相连接的火车站开。任意两个火车站有且只有一条路径,每个火车站最多有50个和它相连接的火车站。告诉你每个火车站的利润,部你可以获得的最大利润为多少?例如下图是火车站网络:最佳投资方案是在1,2,5,6这4个火车站开饭店可以获得利润为90。输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省定西地区岷县2027届数学四年级第一学期期末监测试题含解析
- 2027届陕西省西安市雁塔区三上数学期末调研模拟试题含解析
- 2026年5月产房助产士理论考试测试卷及答案
- 2027届黑龙江省伊春市西林区四上数学期末达标检测试题含解析
- 2027届江西省赣州市赣县三年级数学第一学期期末达标检测试题含解析
- 湖北省荆门市京山县2027届四年级数学第一学期期末调研试题含解析
- 济宁市2026届高三最后一模生物试题含解析
- 2026能源装备制造行业市场发展分析成本评估销售规划研究报告
- 2026中国智能空气净化系统制造行业市场发展现状供需评估及投资评估产业发展规划报告
- 【期末总复习】初中道德与法治考试(提分技巧篇)
- 2026年医保经办管护综合岗事业单位招聘考试笔试试题(含答案)
- 2026年新上岗护士测试题及答案
- 沪粤版八年级物理上册期末考试卷及答案解析(100分版)
- 2025四川九洲电器集团有限责任公司招聘光电系统总体工程师(校招)等岗位测试笔试历年参考题库附带答案详解
- 2025江苏南京栖霞区中考一模数学试卷及答案
- 广西卫生职业技术学院招聘考试真题2025
- 《电气控制与S7-1200PLC应用》课件 第6章S7-1200 PLC程序块
- 2026镇江市护士招聘考试题及答案
- 钢结构更换构件施工工艺流程
- 2026年河南省安阳市重点学校初一新生入学分班考试试题及答案
- DB51T 2834-2021 四川省页岩气生产安全规程
评论
0/150
提交评论