【51nod1051】【最大子矩阵和】【动态规划】
来源:互联网 发布:oveplayer mac 编辑:程序博客网 时间:2024/05/11 14:04
题目大意
一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。
例如:3*3的矩阵:
-1 3 -1
2 -1 3
-3 1 2
和最大的子矩阵是:
3 -1
-1 3
1 2
解题思路
枚举左右边界,可以把中间的数压成一维,在从前往后扫,如果之前的最大和大于0,那肯定连上之前的数,否则则以当前数为起点肯定更优,复杂度就是n^3.
code
#include<cstdio>#include<algorithm>#define LL long long#define min(a,b) ((a<b)?a:b)#define max(a,b) ((a>b)?a:b)#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)using namespace std;int const maxn=500;int n,m,a[maxn+10][maxn+10];LL s[maxn+10];int main(){ scanf("%d%d",&m,&n); fo(i,1,n)fo(j,1,m)scanf("%d",&a[i][j]); LL ans=0,tmp; fo(i,1,n){ fo(j,1,m)s[j]=0; fo(j,i,n){ tmp=0; fo(k,1,m){ s[k]+=a[j][k]; tmp=max(tmp+s[k],s[k]); ans=max(ans,tmp); } } } printf("%lld",ans); return 0;}
0 0
- 【51nod1051】【最大子矩阵和】【动态规划】
- 最大子矩阵和问题 动态规划 51nod1051
- 51nod1051(最大子矩阵和)
- 51 nod1051 最大子矩阵和
- 51 nod1051最大和子矩阵
- 51nod1051-衍生最大子段和&枚举-最大子矩阵和
- 动态规划 最大子矩阵的和
- 动态规划-最大子矩阵和
- poj1050(动态规划+最大子矩阵和)
- 动态规划---最大子段和&最大子矩阵和
- 最大子序列和+最大子矩阵-动态规划-无
- 动态规划 最大子矩阵
- 【动态规划】最大子矩阵
- 动态规划-最大子矩阵
- 动态规划:最大子矩阵
- 动态规划 最大子矩阵
- 动态规划----最大子矩阵
- 动态规划最大子矩阵
- JMeter学习-002-JMeter环境配置
- Android实现悬浮窗口
- R 语言中的 箱线图介绍 boxplot
- HDU 2057 A + B Again(水)
- 博为峰Java技术题 ——JavaEE Servlet 国际化Ⅰ
- 【51nod1051】【最大子矩阵和】【动态规划】
- Http传输Header一览
- 自适应学习率调整:AdaDelta - Physcal
- pdo query() 函数 实现select语句
- IntelliJ IDEA中安装、配置以及使用Maven
- Cookie学习笔记
- JAVA设计模式之策略模式
- Android 手机调试不输出错误日志与错误日志一闪而过的问题
- mysql大牛