除了用三元组顺序表来存储压缩矩阵,我们还可以用链表结构来存储,实际上后者应用更广泛,
因为当非零元素的数目较大时,三元组的时间复杂度实在太高。链表结构中最常见的是十字链表,
在十字链表中,稀疏矩阵每一行用一个带头结点的循环链表表示,每一列也用一个带头结点的循环链表表示。
在这个结构中,除头结点外,每个结点都代表矩阵中的一个非零元素,
它由5个域组成:行域(row),列域(col),数据域(data),向下域(down)和向右域(right)。...
分类:
其他好文 时间:
2014-10-30 00:28:50
阅读次数:
258
Maximum Sum大意:给你一个n*n的矩阵,求最大的子矩阵的和是多少。思路:最开始我想的是预处理矩阵,遍历子矩阵的端点,发现复杂度是O(n^4),就不知道该怎么办了。问了一下,是压缩矩阵,转换成最大字段和的问题。压缩行或者列都是可以的。 1 int n, m, x, y, T, t; 2 in...
分类:
其他好文 时间:
2014-07-24 07:10:58
阅读次数:
211
Maximum Sum
大意:给你一个n*n的矩阵,求最大的子矩阵的和是多少。
思路:最开始我想的是预处理矩阵,遍历子矩阵的端点,发现复杂度是O(n^4),就不知道该怎么办了。问了一下,是压缩矩阵,转换成最大字段和的问题。
压缩行或者列都是可以的。
int n, m, x, y, T, t;
int Map[1010][1010];
int m...
分类:
其他好文 时间:
2014-07-23 20:54:55
阅读次数:
324