通过动态规划2大概知道动态规划如何去分析、思考问题。
这小节主要是去理解动态规划里经典的问题--数塔问题。
题目链接:HDU2084
题意:
从最高点走到最下面一层,每次可以走到相邻的节点,每一步经过一个数字,将其累加,求最大的累加值是多少。
样例:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(1)
思路:从倒数第2层开始,选取下一层并且与其邻接的节点中的最大值,将下一层并且与其邻接的节点中的最大值加上当前的值之和替换当前的值。
表示最优解的走法如果经过当前的位置时,将会选择下一层并且与其邻接的节点中的最大值。使得最终的值最大。
例如样例中第4行第1个是2.与2邻接的有第5行的第一个值4和第二个值5.所以会选择5.将5+2=7替换2.代表如果最优解的走法经过第四行第一个2时,
将会走向下一层的5.使得最终最大。