#DP# ----- OpenJudge最大子矩阵
OpenJudge 1768:最大子矩阵
- 总时间限制: 1000ms 内存限制: 65536kB
- 描述
- 已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。
比如,如下4 * 4的矩阵
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2的最大子矩阵是
9 2
-4 1
-1 8这个子矩阵的大小是15。
- 输入
- 输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵中整数的范围都在[-127, 127]。
- 输出
- 输出最大子矩阵的大小。
- 样例输入
-
4
0 -2 -7 0 9 2 -6 2
-4 1 -4 1 -1 8 0 -2 - 样例输出
-
15 矩阵 内数字求和最大,不必为了求和最大不择手段画出奇奇怪怪的图形。
可考虑将矩阵降维变成区间求和最大。#include<stdio.h>
#include<algorithm>
using namespace std; int a[][],b[][],c[],t,n,m,maxx=-; int f(int x){
int ans=-,sum=,i;
for(i=;i<=n;i++){
sum+=b[x][i];
ans=max(ans,sum);
if(sum<) sum=;
}
return ans;
}
int main(){
int i,j,k;
scanf("%d",&n);
for(i=;i<=n;i++)
for(j=;j<=n;j++){//降维 横行内++
scanf("%d",&a[i][j]);
a[i][j]+=a[i-][j];
}
for(i=;i<=n;i++)
for(j=;j<i;j++){//矩阵的长度
t++;//计算所有矩阵个数
for(k=;k<=n;k++)//矩阵的宽度
b[t][k]=a[i][k]-a[j][k];//第t个矩阵宽度为k 和为 a[i][k]-a[j][k]
}
for(i=;i<t;i++)
maxx=max(maxx,f(i));//选出和最大矩阵
printf("%d",maxx);
return ;
}
#DP# ----- OpenJudge最大子矩阵的更多相关文章
- #DP# ----- OpenJudge山区建小学
没有记性.到DP不得不写博了,三天后又忘的干干净净.DP是啥 :-) 一道久到不能再久的题了. OpenJudge 7624:山区建小学 总时间限制: 1000ms 内存限制: 65536k ...
- hdu 2870(dp求最大子矩阵)
题意:让你求的是由同一字母组成的最大子矩阵,w可以变成a或者b,x可以变成b或者c,y可以变成a或者c,z可以变成a或者b或者c. 分析:这是hdu 1506.hdu 1505的加强版,具体的分析看我 ...
- hdu 1505(dp求最大子矩阵)
题意:就是让你求出全由F组成的最大子矩阵. 分析:这是hdu 1506的加强版,只不过这道题变成了2维的,那我们就一行一行的来.具体的分析见1506的博客:http://www.cnblogs.com ...
- hdu 1506(dp求最大子矩阵)
题意:容易理解... 分析:对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下标假设为r,然后矩阵的面积就是(r-l+1)*1:我们从左到 右扫一遍,求出每个点的 ...
- hdu1506(dp求最大子矩阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506 分析: 对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下 ...
- #DP# ----- OpenJudge数字组合
OpenJudge 2985:数字组合 总时间限制:1000ms 内存限制: 65536kB 描述 有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式.如:n=5,5个数分别为1,2,3, ...
- hdu1505(dp求最大子矩阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505 分析: 这题是HDU 1506 的加强版,定义一个二维数组,d[i][j]表示第i行j列元素在前 ...
- hdu2870(dp求最大子矩阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2870 分析:分别转换成'a','b','c'三种来求,其实就跟hdu1505一样了... #inclu ...
- hdu 1506 Largest Rectangle in a Histogram ((dp求最大子矩阵))
# include <stdio.h> # include <algorithm> # include <iostream> # include <math. ...
随机推荐
- mysql Explain 性能分析关键字
EXPLAIN 输出格式select_typetabletypepossible_keyskeykey_lenrowsExtra MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT ...
- VS下载地址
http://www.iplaysoft.com/vs2015.html Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.Visual Studio ...
- 嵌入式linux插入内核模块Error: could not insert module xxx.ko: Device or resource busy处理
设备号冲突导致 处理方法: 1.输入$cat /proc/devices 查看驱动的设备号 2.选择一个不冲突的设备号进行编译 参考文献: 1.http://blog.csdn.net/zzc_19/ ...
- windows下常用软件
1 pdf转word solid converter pdf 特点:功能强大,能转换页面页眉等,还有表格.
- 同时运行ecstore1.2与ecstore2.0的解决方案
解决方法: php.ini中 zend_loader.license_path指向一个目录,该目录下同时包含两个developer.zl文件,一个是1.2,一个是2.0的. 为了避免俩develope ...
- 解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
原因 IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件. 该命令的 ...
- 使用bootstrap响应式布局——手机屏幕中横向滚动显示标签页选项
导航栏到小屏幕的时候,我们的处理办法是隐藏为一个按钮.可是选项卡的标签页部分,我们的处理办法是加一个水平滚动条.但是加水平滚动条需要解决一个问题,就是宽度的问题,如果不设置宽度,他就会根据屏幕大小自适 ...
- mssql数据库syscolumns表中xtype列
xtype 类型34 image35 text36 uniqueidentifier48 tinyint52 smallint56 int58 smalldatetime59 real60 mo ...
- [转]hibernate缓存机制所有详解
以下文章来自http://www.blogjava.net/tbwshc/articles/380013.html Hibernate 所有缓存机制详解 hibernate提供的一级缓存 hibern ...
- unity3d 之本地推送
1. 本地推送主要包括在android和ios上,下面所有的代码都是本人写的,经过测试是没有问题的,已经运用到项目中了.首先是接口INotification: using System; public ...