题目应该很容易看懂,是为了求一个矩阵之内最大的一个子矩阵的和。
子矩阵的和表示的是该矩阵内所有元素的和。
方法引入:
首先当然十分容易的可以想到一维求子段的和。
假设数组为a[110];
int sum = 0, MAX = 0,n;
for (int i = 0; i < n; i++)
{
if (sum < 0)
sum = 0;
sum += a[i];
if (sum...
分类:
其他好文 时间:
2014-12-07 00:09:20
阅读次数:
116
题目大意:给出一张地图,求出这张地图中最大的子矩阵,使得这个子矩阵不包含字母‘R’。
思路:简单的悬线法求最大子矩阵,还是不带权值的,很好求。好久没写悬线了,复习一下。
CODE:
#include
#include
#include
#include
#define MAX 1010
using namespace std;
int m,n;
bool ma...
分类:
其他好文 时间:
2014-11-27 22:13:09
阅读次数:
254
最大和
时间限制:1000 ms | 内存限制:65535 KB
难度:5
描述
给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵。
例子:
0 -2 -7 0
9
2 -6 2
-4
1 -4 1
-1 8 0 -2
其最大子矩阵为:
9
...
分类:
其他好文 时间:
2014-11-27 12:43:24
阅读次数:
160
题目很简单,就是个最大子矩阵和的裸题,看来算法课本的分析后也差不多会做了。利用最大子段和的O(n)算法,对矩阵的行(或列)进行 i和j的枚举,对于第 i到j行,把同一列的元素进行压缩,得到一整行的一维数组后直接调用O(n)算法即可。我一开始还想着同一列的元素压缩不是也要耗费O(n)的时间吗,看了.....
分类:
其他好文 时间:
2014-11-26 10:42:20
阅读次数:
148
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2870分析:分别转换成'a','b','c'三种来求,其实就跟hdu1505一样了。。。#include #include #include #include #include #include #inc...
分类:
其他好文 时间:
2014-11-25 01:31:51
阅读次数:
257
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505分析:这题是HDU 1506 的加强版,定义一个二维数组,d[i][j]表示第i行j列元素在前i行中的最大高度。(以第一行为底)例如测试样例:0 1 1 1 1 1 0 1 1 1 1 11 1 1...
分类:
其他好文 时间:
2014-11-25 00:02:09
阅读次数:
309
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506分析:对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下标假设为r,然后矩阵的面积就是(r-l+1)*1;我们从左到右扫一遍,求出每个点的l保存在l[]数组里,...
分类:
其他好文 时间:
2014-11-24 22:25:19
阅读次数:
204
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1081 分析:a[i][j]代表第i行,前j个数据的和;那么由a[i][j]可得sum[k][long]=a[k][j]-a[k][i-1];long=j-i+1;sum[k][long]表示第k行,从第...
分类:
其他好文 时间:
2014-11-24 20:30:24
阅读次数:
172
题目大意:给出一个矩阵,求在这个矩阵中取出k个不重叠的矩阵的最大和。
思路:怎么做?
这个问题困扰我好几天的时间,终于再一次读题:
。。。
。。
。。。
2??!!
这尼玛逗我??直接说最多两列不好么?还用矩阵吓唬我?
好吧下次我一定认真看题。。
我的做法比较渣,算出来的时间复杂度是O(m^3*k),但是只有最多3000w,还是可以过的。
状态:f[i][j][...
分类:
其他好文 时间:
2014-11-19 14:12:05
阅读次数:
192