题目地址:http://poj.org/problem?id=1050
题目大意:简单易懂,求一个最大为100*100矩阵中的子矩阵中元素之和的最大值
解题思路:说实话这道题算是DP,本人现在正在补,对DP还是不太熟悉,甚至还在网上参考了一些算法过程以及思路才写出的代码,最后终于AC了(笑)
首先,解这道题要有求最大子段和的基础,如给你一个数组a,求数组中a[i]+a[i+1]+...+a[j]的最大值
解法很简单,参考如下:
int b=0,sum=-100000000;
for(int i=0;i<n;i++)
{
if(b>0) b=b+a[i];
else b=a[i];
if(b>sum) sum=b;
}
再说本道题,主要思想为将其转化为一维数组求最大子段和,如果最优解左起第i列,右止于第j列,那么我们相当于把这些列的对应位加和,成为一列,