乙個m*n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。
第1行:m和n,中間用空格隔開(2 <= m,n <= 500)。第2 - n + 1行:矩陣中的元素,每行m個數,中間用空格隔開。(-10^9 <= m[i] <= 10^9)
輸出和的最大值。如果所有數都是負數,就輸出0。
3 3-1 3 -1
2 -1 3
-3 1 2
7解法:
設最後形成的答案子矩陣是 【 (x1, y1), ( x2, y2 ) 】, 那麼< x1, x2 > 的組合共有n^2個,列舉n^2個組合,每個組合用行上的字首和求出 ( x1,k )、( x2,k ) 上數字的和,然後 o(m)複雜度求最大子段和。總複雜度 o(n^2 * m).
**:
#includeusing namespace std;
typedef long long lint;
const int max_n = 1e5+1e2;
int n,m;
lint num[510][510];
lint sum[510][510];
lint a[510];
lint getmax()
return res;
}void solve()
}for(int i=1;i<=n;i++)
}printf("%lld\n",res);
}int main()
51 nod1051 最大子矩陣和
1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2 ...
51nod1051 最大子矩陣和
1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2 ...
51nod 1051 最大子矩陣和
1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2i...