最大连续和的二维版本,貌似叫最大矩阵和,裸的,有多组数据.一开始写O(N^4),一直WA,后来去学习O(N^3)的写法,貌似也是DP,方程不会写,AC. BTW,RQNOJ 106也是最大矩阵和. [Code] #include<iostream> using namespace std; int a[110][110] = {0}; int main() { int n, i, j, k, tmp, sum; while (scanf("%d", &n) == 1) { for (j = 1; j <= n; j++) for (i = 1; i <= n; i++) { cin >> a[i][j]; a[i][j] += a[i-1][j]; } sum = a[1][1]; for (i = 0; i <= n; i++) for (j = i; j <= n; j++) { tmp = 0; for (k = 1; k <= n; k++) { if (tmp < 0) tmp = a[j][k] - a[i][k]; else if (i != j) tmp += a[j][k] - a[i][k]; if (tmp > sum && tmp != 0) sum = tmp; } } cout << sum << endl; } }