- 1、本文档共39页,可阅读全部内容。
- 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
* 动态规划 【引例1、数字三角形】 有一个数字三角形,编程求从最顶层到最底层的一条路所经过位置上数字之和的最大值。每一步只能向左下或右下方向走。下图数据的路应为7-3-8-7-5,和为30。 输入: 第一行:R(1=R=100),数字三角形共有R行; 以下R行:依次表示数字三角形中每行中的数字。 每个数都是非负的,且=100. 输出:一个正整数,路径上数字之和的最大值。 输入样例: 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出样例: 30 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 一、引例 算法一:深度优先搜索算法DFS: 二维数组a[i,j]存储数字三角形。 Procedure try(sum,i,j:integer); {从a[1,1]到走到第i行第j列即a[I,j]时所取得的值为sum} begin if i=n then begin if summax then max:=sum; exit; end; try(sum+a[i+1,j],i+1,j); {向左下方走} try(sum+a[i+1,j+1],i+1,j+1); {向右下方走} end; 开始时:try(a[1,1],1,1); 结果:max 为什么当n较大时速度慢? 方法一:依次求从起点(1,1)到点(i,j)的最大值。 设F[I,j]为从a[1,1]到达a[I,j]时取得的最大值. 根据题意可得出递推关系: 算法二: f[i,j]=max{f[i-1,j-1]+a[i,j],f[i-1,j]+a[I,j]} 或f[i,j]=max{f[i-1,j-1],f[i-1,j]}+a[I,j] 初始:f[1,1]:=a[1,1]; 目标:max{f[n,i]} 1=i=n procedure work begin f[1,1]:=a[1,1]; for i:=2 to n do {枚举行} for j:=1 to i do {枚举每行的元素} if f[i-1,j-1]f[i-1,j] then f[i,j]:=f[i-1,j-1]+a[i,j] else f[i,j]:=f[i-1,j]+a[i,j]; {枚举两种走法} ans:=f[n,1]; for i:=2 to n do if f[n,i]ans then ans:=f[n,i]; writeln(ans); end; procedure work2;{顺推} begin f[1,1]:=a[1,1]; for i:=2 to n do for j:=1 to i do f[i,j]:=max(f[i-1,j-1],f[i-1,j])+a[i,j]; ans:=f[n,1]; for i:=2 to n do if f[n,i]ans then ans:=f[n,i]; writeln(ans); end; function max(a,b:integer):integer; begin max:=a; if bmax then max:=b; end; 方法二:从最后一行向起点走 设F[I,j]:a[i,j]到达第n行a[n,k](k:1--n)的最大值. 递推关系: f[i,j]=max{f[i+1,j]+a[i,j],f[i+1,j+1]+a[I,j]} 或f[i,j]=max{f[i+1,j],f[i+1,j+1]}+a[I,j] 初始:f[n,i]:=a[n,i]; 1=i=n 目标:f[1,1] {procedure work begin for i:=1 to n do f[n,i]:=a[n,i]; for i:=n-1 downto 1 do {枚举行} for j:=1 to i do {枚举每行的元素} if f[i+1,j]f[i+1,j+1] then f[i,j]:=f[i+1,j]+a[i,j] else f[i,j]:=f[i+1,j+1]+a[i,j]; {枚举走法} writeln(f[1,1]); end; } 思考:算法一和算法二的主要区别在哪里? 算法一:每求一条从起点到终点的路线,中间的点都重新求一遍。做了大量的重复性计算。 算法二:中间结点的值只求一次,后边的点可以直接使用
您可能关注的文档
- [从业资格考试]安全防范系统与工程讲义.pdf
- [从业资格考试]家庭装修经典背景墙图片欣赏aa.pdf
- [从业资格考试]小学、中学教育学.ppt
- [从业资格考试]就业失业登记失业金发放.ppt
- [从业资格考试]市政公用工程项目施工管理.doc
- [从业资格考试]心理咨询师培训课件社会心理学知识.ppt
- [从业资格考试]技能题-正式食谱编制20120519.ppt
- [从业资格考试]招投标与合同管理.doc
- [从业资格考试]护士执业资格考试--练习题-27.doc
- [从业资格考试]挖掘机中级工试题库.doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 电气安全评估报告模板.docx VIP
- 2025学年人教版英语七年级下册单词默写表.docx VIP
- TB 10754-2018 高速铁路轨道工程施工质量验收标准 含2023修改单(2-2).pdf
- 《网络工程师》模拟考试题.doc VIP
- 脑梗塞中医辨证课件.pptx
- 解码国家安全智慧树知到期末考试答案章节答案2024年国际关系学院.docx VIP
- YB∕T 5305-2020 线缆套管用焊接钢管(可复制版).pdf
- 应用指南《GB_T23443-2024建筑装饰用铝单板》应用指南.pptx VIP
- CQC3703-2022 绿色能源消费评价技术规范-活动.pdf VIP
- 1.4 全面推进依法治国的六项重大任务(政策与法律法规 第五版).pptx VIP
文档评论(0)