51Node 1051---最大子矩阵和
2024-08-25 16:44:38
一个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 ;
}
最新文章
- C#进阶系列——DDD领域驱动设计初探(一):聚合
- HTML5+AJAX原生分块上传文件的关键参数设置
- Windows Server 2012 FTP配置 后客户机一直登录不上
- apache开启gzip的方法
- plot的实践。
- 【USACO 1.5.2】回文质数
- BootStrap-validator 使用记录(JAVA SpringMVC实现)
- Uva 12569 Planning mobile robot on Tree (EASY Version)
- 基于机器学习的web异常检测
- nodejs(1-1)
- H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试
- (82)Wangdao.com第十六天_JavaScript 异步操作
- vue实现 toggle显示隐藏效果
- Infopath 2013 通过UserProfileService读取AD用户信息
- C# redis简单的使用
- php file_get_contents fopen 连接远程文件
- Objective-C 简介
- 在 Mac 上使用多点触控手势
- [转载]用NodeJS打造你的静态文件服务器
- 传递 hdu 5961 拓扑排序有无环~
热门文章
- Python学习—基础篇之文件操作
- Cobbler安装CentOS7系统时报错 curl:(7)Failed connect to 10.0.0.201:80;Connection refused
- [leetcode]366. Find Leaves of Binary Tree捡树叶
- Java日志框架-logback的介绍及配置使用方法(纯Java工程)(转)
- Centos7下安装Docker[z]
- tiny4412 --Uboot移植(3) 时钟
- 自定义Xadmin
- django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html
- 设置textfield 文字左边距
- python02 运算符,基本数据类型,整型,字符串