ACM动态规划问题

2024-11-17 23:59:28
推荐回答(2个)
回答(1):

DP思想就是找到问题最小子问题最优策略, 通过子问题最优策略的状态转移求出需要的状态.
此题DP的子问题最优策略可以描述为:d(i,j)表示的坐标i,j处最优解, 那么自然可分为的两种情况:
1.i==n时,d[i][j]=a[i][j]
2.i 递归是另外一种思想, 具体应该说是一种搜索的思想, 通过不断查找当前问题的前一个状态来获取当前状态, 如果问题还可以分解,那么就继续搜索前一个状态,直到遇到问题的末尾状态,通常称为递归基,不能往下了就直接返回递归基,这样往回回溯的时候一个个子问题就完善了,就能知道当前的状态.
所以递归有很多时候和DP非常像,我们通过记忆优化后效率就和DP差不多了,这时候也叫动归.
至于递推,如字面的意思,是一种由当前状态往上推出自己需要的状态的思想.
建议如果想要理解的话可以用三种方法 做一下求斐波那契数列第n项 来好好体会下.

回答(2):

DP 简单来说 就是分解问题的过程,用局部最优来计算整体最优 ,两者由状态转移方程联系;
状态转移方程一定要有;
局部最优的结果不一定是整体最优 ,但整体最优可以通过状态转移方程确定最优解;
DP就是一种基本的编程思想