题目很简单,就是个最大子矩阵和的裸题,看来算法课本的分析后也差不多会做了。利用最大子段和的O(n)算法,对矩阵的行(或列)进行 i和j的枚举,对于第 i到j行,把同一列的元素进行压缩,得到一整行的一维数组后直接调用O(n)算法即可。我一开始还想着同一列的元素压缩不是也要耗费O(n)的时间吗,看了.....
分类:
其他好文 时间:
2014-11-26 10:42:20
阅读次数:
148
题目地址:Ural 1146
这题是求最大子矩阵和。方法是将二维转化一维。
首先用n*n的方法来确定矩阵的列。需要先进行预处理,只对每行来说,转化成一维的前缀和,这样对列的确定只需要前后两个指针来确定,只需要用前缀和相减即可得到。前后两个指针用n*n的枚举。
确定好了哪几列,那么再确定行的时候就转化成了一维的最大连续子序列的和。再来一次O(n)的枚举就可以。
这样,总复杂就变成了O(n^3...
分类:
其他好文 时间:
2014-10-03 22:40:35
阅读次数:
205
题意 求一个n*n矩阵的最大子矩阵和
HDU 1003 max sum 的升级版 把二维简化为一维就可以用1003的方法去做了 用mat[i][j]存 第i行前j个数的和 那么mat[k][j]-mat[k][i]就表示第k行 第i+1个数到第j个数的和了 再将k从一枚举到n就可以得到这个这个宽度为j-i的最大矩阵和了 然后i,j又分别从1枚举到n就能得到结果了 和1...
分类:
其他好文 时间:
2014-08-17 15:35:02
阅读次数:
225
最大子矩阵是一种典型的dp问题。某种程度上说是最大连续子序列和问题的扩展。这里选取了两个HDU上的最大子矩阵和问题来解读。...
分类:
其他好文 时间:
2014-08-13 19:06:17
阅读次数:
168
求最大子矩阵和的时候,思路是取出两行i,j,把这两行之间同一列的都加起来形成另外一个数组,求这个数组的最大子段和,求出来的这个和,就是这两行之间高度为i-j的子矩阵中最大的和。POJ1050#include#includeint a[101][101],n,temp[101];int solve()...
分类:
其他好文 时间:
2014-08-13 12:45:16
阅读次数:
208
这题 是蛮特别的..虽然可以将R F转换为 0 1然后求最大子矩阵和 但是这个矩阵中 不能有0 即这个矩阵的元素都是1即F这题 一开始不会做啊=-= 看了discuss里面的人用了 left 和 right数组 还是一知半解 白痴啊=-=我把我的理解和porker讲了下 他纠正了我的错误... --...
分类:
其他好文 时间:
2014-08-05 18:40:49
阅读次数:
256
最大子列和,及其扩展最大子矩阵和,都是比较经典的dp,把这两题写在一起,共大家参考学习。
~~~~
lz弱菜啊,到现在还只能写这么水的DP...orz。
~~~~
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003
http://acm.hdu.edu.cn/showproblem.php?pid=1081
题意应该比...
分类:
其他好文 时间:
2014-07-28 00:10:29
阅读次数:
261
一般 做这题之前应该先去做下 hdu的1003----这是 一维上的 最大连续和矩阵么 就是二维了嘛~我一开始 走进了个错误的方向... 我去计算了第X行前Y个数的和...这是不对的我们这里也同样用到了 前缀和的思想 但应该去计算前X个行第Y个数的和这样 假如 有个matrix[j][y] - ma...
分类:
其他好文 时间:
2014-07-16 17:57:52
阅读次数:
173
MaximumSum题意:求最大子矩阵和状态转移方程dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1] + a[i][j]#include #include int a[110][110], dp[110][110];int main(...
分类:
其他好文 时间:
2014-07-13 17:36:42
阅读次数:
277
2014-04-29
04:36题目:最大子数组和的二位扩展:最大子矩阵和。解法:一个维度上进行枚举,复杂度O(n^2);另一个维度执行最大子数组和算法,复杂度O(n)。总体时间复杂度为O(n^3),还需要O(n)额外空间。代码:
1 // 18.12 Given an n x n matrix, ...
分类:
其他好文 时间:
2014-04-29 14:24:06
阅读次数:
404