利用最大连续子序列和
#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int a[N][N];
int dp[N];
int main() {
int n; scanf("%d", &n);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
scanf("%d", &a[i][j]);
int s = 0;
for (int i = 1; i <= n; i++){
for (int j = 0; j <= i; j++)dp[j] = 0;
for (int j = 1; j <= n; j++) {
int x = 0;
for (int k = i; k >= 1; k--) {
x += a[k][j];
dp[k] = max(x, dp[k] + x);
s = max(s, dp[k]);
}
}
}
printf("%d
", s);
return 0;
}