问题原文: http://acm.pku.edu.cn/JudgeOnline/problem?id=1050
自己想了很久没能想出来,主要卡在如何用 DP 求一个二维关系上。后来百度了一下,找到了解法。
首先需要一个三维数组,_score[i][j][k]。意思是,从第i行到第j行所有第k列元素的和保存在_score[i][j][k]里面。这个数组做好以后我们把所有纵向的可能都枚举出来了。之后对于横向部分做一维的 DP .然后找出最大和。
这应该就是传说中的最大子段问题吧。
源代码见全文
from: http://blog.jianingy.com/2008/09/acm-poj-1050to-the-max-solution-summary.html
本文介绍了如何使用三维数组结合动态规划解决POJ 1050题目的最大子段问题。通过预计算从第i行到第j行所有第k列元素的和,再对横向部分进行一维DP处理,最终找到最大和。

被折叠的 条评论
为什么被折叠?



