题目链接

一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。

 
例如:3*3的矩阵:
 
-1 3 -1
2 -1 3
-3 1 2
 
和最大的子矩阵是:
 
3 -1
-1 3
1 2
Input
第1行:M和N,中间用空格隔开(2 <= M,N <= 500)。
第2 - N + 1行:矩阵中的元素,每行M个数,中间用空格隔开。(-10^9 <= M[i] <= 10^9)
Output
输出和的最大值。如果所有数都是负数,就输出0。
Input示例
3 3
-1 3 -1
2 -1 3
-3 1 2
Output示例
7

思路:矩阵N行M列,枚举列 两层循环求出i到j列的和,那么得到N个数的序列,求出这个序列的最大子段和即为最大子矩阵的和;

代码如下:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
long long a[][]; int main()
{
///cout << "Hello world!" << endl;
int M,N;
while(scanf("%d%d",&N,&M)!=EOF)
{
for(int i=;i<=M;i++)
{
a[i][]=;
for(int j=;j<=N;j++)
{
long long x;
scanf("%lld",&x);
a[i][j]=a[i][j-]+x;
}
}
long long sum,tmp=;
for(int i=;i<=N;i++)
{
for(int j=i;j<=N;j++)
{
sum=;
for(int k=;k<=M;k++)
{
long long t=a[k][j]-a[k][i-];
sum+=t;
if(sum<) sum=;
if(sum>tmp) tmp=sum;
}
}
}
printf("%lld\n",tmp);
}
return ;
}

最新文章

  1. C#进阶系列——DDD领域驱动设计初探(一):聚合
  2. HTML5+AJAX原生分块上传文件的关键参数设置
  3. Windows Server 2012 FTP配置 后客户机一直登录不上
  4. apache开启gzip的方法
  5. plot的实践。
  6. 【USACO 1.5.2】回文质数
  7. BootStrap-validator 使用记录(JAVA SpringMVC实现)
  8. Uva 12569 Planning mobile robot on Tree (EASY Version)
  9. 基于机器学习的web异常检测
  10. nodejs(1-1)
  11. H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试
  12. (82)Wangdao.com第十六天_JavaScript 异步操作
  13. vue实现 toggle显示隐藏效果
  14. Infopath 2013 通过UserProfileService读取AD用户信息
  15. C# redis简单的使用
  16. php file_get_contents fopen 连接远程文件
  17. Objective-C 简介
  18. 在 Mac 上使用多点触控手势
  19. [转载]用NodeJS打造你的静态文件服务器
  20. 传递 hdu 5961 拓扑排序有无环~

热门文章

  1. Python学习—基础篇之文件操作
  2. Cobbler安装CentOS7系统时报错 curl:(7)Failed connect to 10.0.0.201:80;Connection refused
  3. [leetcode]366. Find Leaves of Binary Tree捡树叶
  4. Java日志框架-logback的介绍及配置使用方法(纯Java工程)(转)
  5. Centos7下安装Docker[z]
  6. tiny4412 --Uboot移植(3) 时钟
  7. 自定义Xadmin
  8. django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html
  9. 设置textfield 文字左边距
  10. python02 运算符,基本数据类型,整型,字符串