C语言 · 最大子阵
其中,A的子矩阵指在A中行和列均连续的一块。
接下来n行,每行m个整数,表示矩阵A。
-1 -4 3
3 4 -1
-5 -2 8
对于100%的数据,1<=n, m<=500,A中每个元素的绝对值不超过5000。
/*
题目大意:求连续行、列的子矩阵的最大元素和。 由于行、列必须是连续的,所以可以先求出每
一列前n行的和,然后再枚举一个行的开始和结束就
可以啦,然后再用最大字段和求出最大和。
本质是将二维的转化为一维的。
*/
#include<stdio.h>
#include<string.h>
int a[][],dp[],b[];
int ans;
main(){
int n,m;
/*输入n*m矩阵*/
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++)
scanf("%d",&a[i][j]);
}
/*遍历所有行*/
for(int fir=;fir<=n;fir++){//设置fir为起始行
memset(b,,sizeof(b));//给数组b赋初值为0
for(int i=fir;i<=n;i++){//i表示结束行,从fir行加到i行。
for(int j=;j<=m;j++){
b[j]+=a[i][j];
}
dp[]=b[];
if(dp[]>ans)//保证ans为最大值
ans=dp[];
for(int j=;j<=m;j++){//最大字段和
if(dp[j-]<)
dp[j]=b[j];
else
dp[j]=dp[j-]+b[j];
if(dp[j]>ans)
ans=dp[j];
}
}
}
printf("%d",ans);
}
C语言 · 最大子阵的更多相关文章
- 算法笔记_176:历届试题 最大子阵(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入 ...
- C语言——打印魔方阵(每一行,每一列,对角线之和相等)
<一>魔方阵说明: 魔方阵是一个N*N的矩阵: 该矩阵每一行,每一列,对角线之和都相等: <二>魔方阵示例: 三阶魔方阵: 8 1 6 3 5 7 4 9 ...
- 最大子阵 DP or 前缀和orb暴力 能过
在一个给定的n*m二维矩阵中求一个子矩阵元素和的最大值. 思路: 1:一个二维矩阵由两个点可以确定,枚举两个点,取子矩阵最大值. 2:在一维矩阵中,求一个序列的最大子段,利用 f[i]=max(f[i ...
- [蓝桥杯]PREV-26.历届试题_最大子阵
问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和 ...
- Java实现 蓝桥杯 历届试题 最大子阵
问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和 ...
- acm算法模板(1)
1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几 ...
- ACM-ICPC竞赛模板
为了方便打印,不再将代码放到代码编辑器里,祝你好运. ACM-ICPC竞赛模板(1) 1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函 ...
- ACM常用算法及练习(2)
ACM常用算法及练习 知识类型 重要度 容易度 应掌握度 典型题 其他 数据结构(5) 链表 ★★☆ ★★★ ★★☆ 栈 stack ★★★ ★★★ ★★★ HLoj120 ...
- 基础算法学习2-dp
一.算法题: 最大子阵 给定一个n×m 的矩阵 A,求A 中的一个非空子矩阵,使这个子矩阵中的元素和最大.其中,A 的子矩阵指在 A 中行和列均连续的一部分.输入格式输入的第一行包含两个整数 n,m( ...
随机推荐
- Android开发之动态检索(Filter)联系人
1. 将所有联系人都转换为数字串,存到列表中. 将联系人姓名转换为数字串.例如,张丽思创->zlsc->9572. 过程解析: 张 – zhang – z – 9 丽 – li – l – ...
- 【centos6.5 安装 node.js + npm】
1.参考链接:http://www.jb51.net/article/116231.htm 2.下载的nodejs版本一定要是v0.12.10的(传送门:https://nodejs.org/en/b ...
- Extending_and_embedding_php翻译
http://blog.csdn.net/lgg201 博客翻译了Extending_and_embedding_php
- Python tuple 函数
描述 Python 元组 tuple() 函数将列表转换为元组. 语法 以下是 tuple 的语法: tuple( seq ) 参数 seq -- 要转换为元组的序列. 返回值 返回元组. 实例 以下 ...
- AngularJS 使用 UI Router 实现表单向导
Today we will be using AngularJS and the great UI Router and the Angular ngAnimate module to create ...
- perl的匿名引用
perl中列表不能嵌套,只能通过引用的方式构建复杂的结构.引用其实就是c中的指针,只不过perl中对指针,也就是一个地址的声明和取值有自己的一套方法. 1.先复习普通标量的引用方法: [vagrant ...
- CentOS使用EPEL YUM源
刚刚开始学习centos,感觉很不适应,因为好多软件,yum里面居然没有,让我很不爽,一阵狂搜. 原来centos还有一个epel源,果然,不熟悉的东东,处处是坑啊! EPEL (Extra Pack ...
- jquery动态加载js三种方法实例
这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getScript(\"test.js\" ...
- ios笔记一 追加数据
//追加数据 NSString *homePat = NSHomeDirectory(); NSString *sourcePath = [homePath stringByAppedingPathC ...
- Flink articles
http://ictlabs-summer-school.sics.se/2015/slides/flink-advanced.pdf http://henning.kropponline.de/20 ...