题目链接:
解题报告:
1、用b[i]来记录某一行到第i行的某一列的和。
2、用b[k]=b[k]+a[j][k]来更新。
3、用sum=sum+b[k]来记录第i行到下面的那一行的那个矩阵的和(列数变化)。
4、if(sum<b[k])表示第k列之前的矩阵为负,最大和就为sum=b[k];
5、更新max。
#include#include #include using namespace std;int Max=-0x3f3f3f3f;///最优值int a[105][105];///存储矩阵int b[105];///b[i],表示之前的某一行到第i行的矩阵和int main(){ int n; int i,j,k; scanf("%d",&n); for(i=0;i Max) Max=sum; } } } printf("%d\n",Max); return 0;}