问题原文: 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