1.一维矩阵最大子矩阵和的dp
int tmp = 0;
MAX = -inf;
for(int i=0;i<n;i++)
{
if(tmp>0)
{
tmp+=a[i];
}
else
tmp = a[i];
MAX = max(tmp,MAX);
}
2.二维矩阵最大子矩阵和降维dp
for(int i=0;i<n;i++)
{
memset(sum,0,sizeof(sum));
for(int j=0;j<m;j++)//将子矩阵求和降维
sum[j]+=a[i][j];
int tmp = 0;
for(int j=0;j<m;j++)//对sum数组作一维矩阵求最大子矩阵和的dp
{
if(MAX>0)
{
tmp+=sum;
}
else
tmp = a[i];
MAX = max(tmp,MAX);
}
}