这个问题来自一次面试。存在一个包含整数的NxN矩阵,N可能大于10^4。问题是如何设计一种辅助数据结构来有效地获得NxN矩阵的任意子矩形矩阵的最小公倍数。使用的空间不能超过2xNxN或3xNxN,我记不清了,同时我们不要太严格地限制空间。
发布于 2014-03-14 10:08:46
我想Segment tree会帮上忙的。让我们考虑一个更简单的问题,给出一个包含N
整数的数组A[N]
,而不是查询任何子数组中的最小公倍数。使用分段树,将每个节点[l, r]
与最小公倍数相关联。每个查询包含O(lnN)
时间,总空间约为2*N
。
对于矩阵,使用二维分段树。这是一个针对query gcd in matrix的解决方案,与您的问题类似。
https://stackoverflow.com/questions/22400301
复制相似问题