没啥好说的,,水题一个
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
int n,m;
int map[305][305];
int icase;
scanf("%d",&icase);
while(icase--)
{
scanf("%d%d",&n,&m);
int num;
memset(map,0,sizeof(map));
for(int i = 1;i<=n;i++)
for(int j=1;j<=m;j++){
cin>>num;
map[i][j] = map[i-1][j]+num; // 从上到下,,相加;
}
int Max = -1111111;
for(int i=n;i>=1;i--)
{
for(int j=0;j<i;j++)
{
int sum = 0;
for(int k=1;k<=m;k++)
{
sum += map[i][k] - map[j][k]; // 枚举 1--n 行
Max = max(sum,Max);
if(sum<0) sum = 0; //
}
}
}
printf("%d\n",Max);
}
}