1768:最大子矩阵
来源:互联网 发布:网络直播发展的弊端 编辑:程序博客网 时间:2024/06/05 10:34
总时间限制: 1000ms 内存限制: 65536kB
描述
已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。
比如,如下4 * 4的矩阵
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
的最大子矩阵是
9 2
-4 1
-1 8
这个子矩阵的大小是15。
输入
输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵中整数的范围都在[-127, 127]。
输出
输出最大子矩阵的大小。
样例输入
4
0 -2 -7 0 9 2 -6 2
-4 1 -4 1 -1
8 0 -2
样例输出
15
来源
翻译自 Greater New York 2001 的试题
典型的动态规划类型的题,使用动态规划之前先降维
#include<bits/stdc++.h>using namespace std;int main(){ int n,a[101][101],i,j,r,sum[101],s=-99999999,t1; cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { cin>>a[i][j]; a[i][j]+=a[i-1][j]; } for(i=1;i<=n;i++) { for(j=i;j<=n;j++) { int t=-99999999; for(r=1;r<=n;r++) { t1=a[j][r]-a[i-1][r]; sum[r]=max(sum[r-1]+t1,t1); t=max(sum[r],t); } s=max(s,t); } } cout<<s; return 0;}
阅读全文
0 0
- 1768:最大子矩阵
- POJ 1768 最大子矩阵
- 1768_最大子矩阵
- |NOIOJ|动态规划|1768:最大子矩阵
- 百练 1768:最大子矩阵
- 最大子矩阵问题
- 最大子矩阵模板
- 最大子矩阵问题
- 最大子矩阵问题
- 最大01 子矩阵
- 最大子矩阵问题
- 最大子矩阵
- 最大子矩阵问题
- 最大子矩阵和
- 最大子矩阵问题
- 最大子矩阵问题:
- 最大子矩阵和
- 最大子矩阵之和
- 查看&修改JVM运行参数方法小结
- Angular4简单入门笔记
- 各类排序总结【代码】
- 提问的力量(二):为什么提问不容易?
- 01. Java内存区域&对象处理过程
- 1768:最大子矩阵
- git/repo/gerrit 本地环境搭建(一)
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 日间、夜间模式切换
- tensorflow API简单整理(四、Graph,Operation&Tensor)
- 并发编程中的Volatile与synchronized
- 提问的力量三:提问式思维----你是学习者还是评判者?
- bzoj 2724 蒲公英 分块
- Ubuntu添加环境变量