分析-东北林业大学.PPT

分析-东北林业大学

ACM程序设计; 今天你AC 了吗?;第6讲;我校的ACM在线评测系统;动态规划法的设计思想 ; 原问题的解;n=5时分治法计算斐波那契数的过程。 ;0 ; 用动态规划法求解的问题具有特征: 能够分解为相互重叠的若干子问题; 满足最优性原理(也称最优子结构性质):该问题的最优解中也包含着其子问题的最优解。 (用反证法)分析问题是否满足最优性原理: 先假设由问题的最优解导出的子问题的解不是最优的; 然后再证明在这个假设下可构造出比原问题最优解更好的解,从而导致矛盾。 ;动态规划法设计算法一般分成三个阶段: (1)分段:将原问题分解为若干个相互重叠的子问题; (2)分析:分析问题是否满足最优性原理,找出动态规划函数的递推式; (3)求解:利用递推式自底向上计算,实现动态规划过程。 动态规划法利用问题的最优性原理,以自底向上的方式从子问题??最优解逐步构造出整个问题的最优解。;看过上面的原理,今天先学1句话, 陈老师说:DP 就是要避免重复计算!;;问题是:服务器的数据 data.in(输入)的内容如下;每次都递归的话,其实就是重复计算,就超时了!;例1斐波那契数列 nefu 85;代码:;用递归能做吗?;现在同学们在纸上计算下题:;递归的代码:;递推的代码:;Nefu20 穿过街道 ;由下图,我们知道data[i][j]=data[i][j-1]+data[i-1][j];;;递归的代码:;Main();其实这题递推的代码更短:;经过上面的思考,回忆一下:;例:数字三角形 nefu17;分析:;;;找出最后1行的最大值,并输出之!;Welcome to HDOJ

文档评论(0)

1亿VIP精品文档

相关文档