题目链接:51nod 1051 最大子矩阵和 实质是把最大子段和扩展到二维.读题注意m,n... #include<cstdio> #include<cstring> #include<vector> #include<algorithm> #define CLR(a,b) memset((a),(b),sizeof((a))) using namespace std; ; int dp[N][N]; int main(){ int n, m, i, j,…
没想到居然可以O(n3)暴力过 就是大概之前的 最大连续子序列和 加成2维度了 枚举起始列 和 终止列 然后计算从1到n行最大的子矩阵的和 注意n 和 m 的输入顺序!! #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll s[maxn][maxn],sum[maxn][maxn]; int main () { int m,n; scanf("%d %d",&m,&…
[题解] 二重循环枚举起始列和终止列,竖着往下加,转化为一个最大子段和问题,逐行累加即可. #include<cstdio> #include<cstring> #include<algorithm> #define LL long long #define N 1000 #define rg register using namespace std; int n,m,x; LL ans,sum[N][N]; inline int read(){ ,f=; char c…