设计数据结构以有效地查询子矩阵的最小公倍数

时间:2014-03-14 09:00:36

标签: algorithm

问题来自面试。存在具有整数的NxN矩阵,N可能高于10 ^ 4。问题是如何设计辅助数据结构以有效地获得NxN矩阵的任何子矩形矩阵的最小公倍数。使用的空间不应超过2xNxN或3xNxN,我不能清楚地记住它,而不要过于严格地限制空间。

1 个答案:

答案 0 :(得分:2)

我认为Segment tree会有所帮助。让我们考虑一个更简单的问题,即给定一个A[N]数组N的整数,而不是查询任何子数组的最小公倍数。使用分段树,将每个节点[l, r]与最小公倍数相关联。每个查询都有效 O(lnN)时间,总空间大约为2*N

对于矩阵,使用二维分段树。这是query gcd in matrix的解决方案,与您的问题类似。