动态规划笔记

一、动态规划 Dynamic Programming

wiki释意:Simplifying a complicated problem by breaking it down into simpler subproblems

二、动态规划与递归、分治的区别

1、动态规划和递归或者分治没有更本上的区别(关键看有无最优子结构)

共性:找到重复子问题

差异性:最优子结构、中途可以淘汰次优解

三、动态规划要点

1、最优子结构 opt[n] = best_of(opt[n-1],opt[n-2],...)

2、储存中间状态:opt[i]

3、递推公式:状态转移方程或者DP方程

fib:opt[i]=opt[i-1]+opt[i-2]

二维路径:dp[i][j]=dp[i-1][j]+dp[i][j-1](且判断a[i,j]是否空地) 

原文地址:https://www.cnblogs.com/lvsling/p/14417207.html