题目大意:给定一个二维矩阵,求出现次数最多的a*b的子矩阵
二维Hash,只要记住横纵的BASE不能相同就可以,爱怎么搞怎么搞
一开始写的自然溢出 结果OLE 以为是自然溢出被卡掉了于是写了双取模…… 结果还是OLE
最后发现尼玛这题读入坑爹……字符串里有空格不说,满满的不可见字符是咋回事……
记住不要用scanf读入……可以用gets,或者fread,注意要把一开始的回车过滤掉
get...
分类:
其他好文 时间:
2014-12-10 14:14:10
阅读次数:
192
最大子矩阵和……
一直听说dp啊什么……
好吧……暴力
一个很巧妙的思想
由于有负数肯定是不太好的
所以,a[i][j]:第i行前j个数的和
然后,从第1行开始到最后一行,枚举第i列跟第j列(j
用t记录当前结果,若t为负数,则t=a[k][i]-a[k][j]
若t为正数,t+=a[k][i]-a[k][j]
...
分类:
其他好文 时间:
2014-12-09 14:04:41
阅读次数:
188
题目应该很容易看懂,是为了求一个矩阵之内最大的一个子矩阵的和。
子矩阵的和表示的是该矩阵内所有元素的和。
方法引入:
首先当然十分容易的可以想到一维求子段的和。
假设数组为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
http://www.cnblogs.com/jianglangcaijin/p/3460012.html首先将矩阵的数字排序。设置size,每次将size个数字插入。插入时,我们用h[i][j]记录该位置的数字是否已经插入;用sum[i][j]表示子矩阵(1,1)到(i,j)已经插入的数字个数总和...
分类:
其他好文 时间:
2014-12-05 21:14:53
阅读次数:
251
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1057
这题好像很早之前就看到过。。。那时候我还只会玩脚丫子,做这题完全像SB一样,记得那时我做了一会就放弃了。
如今看到这题感觉好做多了,此题预处理很巧妙,我们看一个棋盘,它的所有黑点的行标奇偶性都相同,列标的奇偶性也都相同。白点一样。
于是我们就可以预处理下,对于所有行标和...
分类:
其他好文 时间:
2014-12-04 21:42:25
阅读次数:
207
题目:
做了两个多小时,脑洞大开,给了一个01矩阵,求以a,b,为左上角,c,d为右下角的矩阵内有多少包含部分全为0的子矩阵
对于这道题目,一开始就想到了DP递推,感觉而已,虽然准,可是做不出啊,想好了递推式子可是细节部分没办法去处理。看了CF上的题解,顿时脑洞大开,这个做法真的是太厉害了,这方法代码简洁明了,同时也提醒到了我,在方程假设出来后,对于转移的细节处理,
其实一开始我想到过这个递...
分类:
其他好文 时间:
2014-12-04 01:10:17
阅读次数:
265
题目大意:给出一张地图,求出这张地图中最大的子矩阵,使得这个子矩阵不包含字母‘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
题目大意:给你一个N,接下来是N*N的矩阵。数有正有负,求最大的子矩阵
和。
思路:1003题是一维的求连续子序列最大和,dp[i] = max(dp[i-1]+a[i],a[i])
这道题是求二维的子矩阵最大和。考虑将二维转化为一维的。二维数组的每一
行都可以看做一个一维数组。map[i][j]数组上存的是第i行前j列上的和
第k行上,dp[k][i] = max(dp[k][i-1]+map[k][i],map[k][i]),但是这样只能知道
第k行前i个数的最大和是多少,而不知道是第k行上从第几列到第...
分类:
其他好文 时间:
2014-11-26 16:30:23
阅读次数:
272
题目很简单,就是个最大子矩阵和的裸题,看来算法课本的分析后也差不多会做了。利用最大子段和的O(n)算法,对矩阵的行(或列)进行 i和j的枚举,对于第 i到j行,把同一列的元素进行压缩,得到一整行的一维数组后直接调用O(n)算法即可。我一开始还想着同一列的元素压缩不是也要耗费O(n)的时间吗,看了.....
分类:
其他好文 时间:
2014-11-26 10:42:20
阅读次数:
148