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( ...
随机推荐
- 解决windows下MySQL表名大写自动变小写的问题
解决windows下MySQL表名大写自动变小写的问题 有些人可能会遇到在windows下,表名不能用大写字母, 即使使用了大写字母的建表语句,还是会被自动转成小写. 解决方法: 打开 My ...
- js setAttribute removeAttribute
<input type="button" value="生效" style="font-size:111px"/> <sc ...
- HashTable、List、ArrayList的经典使用和相互转换
1.添加引用 using System.Collections; 2.创建并添加数据 Hashtable hs = new Hashtable(); hs.Add("Name1", ...
- RabbitMQ概念及环境搭建(三)RabbitMQ cluster
测试环境:VMS00781 VMS00782 VMS00386 (centos5.8) 1.先在三台机器上分别安装RabbitMQ Server 2.读取其中一个节点的cookie,并复制到其他节点( ...
- pandas 按照某一列进行排序
pandas排序的方法有很多,sort_values表示根据某一列排序 pd.sort_values("xxx",inplace=True) 表示pd按照xxx这个字段排序,inp ...
- HTML - SELECT默认选中
除了在option中定义属性selected = "selected",还可以 <select defaultValue='2'> <option value=& ...
- mysql查询-不存在记录时赋对应的数据
使用mysql数据库,执行查询的时候,有时候就不存在记录,但是正好在不存在记录的时候又需要给赋予相应的查询结果字段,代码实现如下: select IFNULL(('), '1970-01-01 00: ...
- centos 最小化安装后要做的事情
首先是配置网络 [root@bao-work-4 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=10.230.200.22GATEWA ...
- angularJS核心原理
一.angularJS优点和缺点 优点 1.1免去重复劳动-获取元素.给元素加事件.创建元素 1.2接管UI:angularJS根据数据创建UI元素,免去手工创建UI元素. 1.3自动同步:根据数据个 ...
- 《ZedBoard各种资料网址备份记录》
转载来自于:http://http//www.eefocus.com/crazybingo/blog/2013-02/289101_ab4c8.html 1. Xilinx FPGA相关连接 1) X ...