2 条题解
-
0
#include<bits/stdc++.h> using namespace std; long long a[105][105],maxn=INT_MIN,n,s,x[200],y[200]; int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; a[i][j]+=a[i-1][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ for(int k=1;k<=n;k++){ x[k]=a[i][k]-a[i-j][k]; y[k]=max(y[k-1]+x[k],x[k]); maxn=max(maxn,y[k]); } } } cout<<maxn; return 0; } /*4 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 0 -2 -7 0 9 0 -13 2 5 1 -17 3 4 9 -17 1 */
-
0
提供一个 做法。
#include <bits/stdc++.h> using namespace std; const int N = 105; int sum[N][N], f[N], a[N][N], n, ans; int main() { cin >> n; for (int i = 1; i <= n; i ++) for (int j = 1; j <= n; j ++) cin >> a[i][j], sum[i][j] = sum[i - 1][j] + a[i][j]; for (int i = 1; i <= n; i ++) for (int j = 0; j < i; j ++) for (int k = 1; k <= n; k ++) ans = max(ans, f[k] = max(f[k - 1], 0) + sum[i][k] - sum[j][k]); cout << ans << '\n'; return 0; }
- 1
信息
- ID
- 48
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 155
- 已通过
- 54
- 上传者