求条简单橙题。。。
  • 板块灌水区
  • 楼主BK小鹿
  • 当前回复9
  • 已保存回复11
  • 发布时间2024/8/30 16:25
  • 上次更新2024/8/30 20:11:21
查看原帖
求条简单橙题。。。
1345783
BK小鹿楼主2024/8/30 16:25

rt,被水题切了

题目

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;

#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?EOF:*p1++)
char *p1,*p2,buf[1<<20+5];
inline int read(){
int x=0, f = 1;
char c=gc();
if (c == '-') f = -1;
while(!isdigit(c)){
if (c == '-') f = -1;
c=gc();
}while(isdigit(c)){
x=x*10+(c^48);
c=gc();
}return x*f;
}

const int N = 125;

int n;
int a[N][N], sum[N][N], res, t[N];

int main()
{
    n = read();
    for (int i = 1; i <= n; i ++ )
      for (int j = 1; j <= n; j ++ )
        a[i][j] = read();
    
    for (int i = 1; i <= n; i ++ )
      for (int j = 1; j <= n; j ++ )
        sum[i][j] = sum[i - 1][j] + a[i][j];
        
    for (int i = 1; i <= n; i ++ )
      for (int j = i; j <= n; j ++ )
      {
          t[1] = sum[j][1] - sum[i - 1][1];
          res = t[1];
          for (int k = 2; k <= n; k ++ ) t[k] = max(0, t[k - 1]) + sum[j][k] - sum[i - 1][k], res = max(res, t[k]); 
      }
    
    printf("%d\n", res);
    return 0;
}
2024/8/30 16:25
加载中...