数字三角形精编版

上传人:ahu****ng1 文档编号:130798733 上传时间:2020-05-01 格式:PPT 页数:9 大小:488.50KB
返回 下载 相关 举报
数字三角形精编版_第1页
第1页 / 共9页
数字三角形精编版_第2页
第2页 / 共9页
数字三角形精编版_第3页
第3页 / 共9页
数字三角形精编版_第4页
第4页 / 共9页
数字三角形精编版_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数字三角形精编版》由会员分享,可在线阅读,更多相关《数字三角形精编版(9页珍藏版)》请在金锄头文库上搜索。

1、数字三角形 给你一个数字三角形 形式如下 12345678910找出从第一层到最后一层的一条路 使得所经过的权值之和最小或者最大 分析 你会立刻发现这是一个动态规划的决策问题 每次有两种选择 向左和向右 一个n层的数字三角形完整路线有2 n条 所以当n比较大的时候 用回溯法是行不通滴 如果用d i j 为从格子 i j 出发时得到的最大和 包括格子 i j 本身 那么可以得到状态转移方程 d i j a i j max d i 1 j d i 1 j 1 递归计算 有了状态转移方程就好办了 intdp inti intj if i n returnd i j a i j elsereturnd

2、 i j max dp i 1 j dp i 1 j 1 重叠子问题 这样做是正确的 但是时间效率太低 其原因在于重复计算 1 1 2 1 2 2 3 1 3 2 3 2 3 3 4 1 4 2 4 2 4 3 4 2 4 3 4 3 4 4 记忆化搜索 显而易见 这个算法就是最简单的搜索算法 时间复杂度为2n 明显是会超时的 分析一下搜索的过程 实际上 很多调用都是不必要的 也就是把产生过的最优状态 又产生了一次 记忆化搜索 记忆化搜索把程序分成两部风 首先把d数组初始化为 1 intdp inti intj memset d 1 sizeof d if d i j 0 returnd i

3、j elseif i n returnd i j a i j elsereturnd i j a i j max dp i 1 j dp i 1 j 1 时间复杂度为n 2 记忆化的功效 动态规划的实质 可以看出动态规划的实质就是这也就是为什么我们常说动态规划必须满足重叠子问题的原因 记忆化 正符合了这个要求 记忆化搜索 递推计算 因为在计算d i j 前 它所需要的d i 1 j 和d i 1 j 1 一定已经计算出来了 for i 1 i 1 i for j 1 jd i 1 j 1 d i j a i j d i 1 j elsed i j a i j d i 1 j 1 END POJ1163POJ2760

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 计算机应用/办公自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号