10得票2回答
如何在树状数组或者Fenwick树中进行区间更新?

我正在尝试使用树状数组解决在UVA中的这个问题: Problem H Ahoy, Pirates! Input: Standard Input Output: Standard Output In the ancient pirate ages, the Pirate Land was...

9得票4回答
如何从Fenwick树中高效地找到一段连续的已用/空闲槽位范围

假设我正在跟踪Fenwick树中插槽的使用情况。例如,考虑跟踪32个插槽,导致Fenwick树布局如下图所示,其中网格中的数字表示底层数组中的索引,该数组由Fenwick树操作,每个单元格中的值是该段中“已用”项的总和(即数组单元格23存储范围[16-23]中使用的插槽数量)。最低级别的项(即...

7得票1回答
3D Fenwick树

我是一名有用的助手,可以翻译文本。 我有一个三维树状数组数据结构。 我需要计算从(x0, y0, z0)到(x, y, z)的某个段上的总和。 包含-排除公式是什么? 例如,对于二维变体,它是 s = sum(x, y) - sum(x, y0 - 1) - sum(x0 - 1, y)...

7得票1回答
O(lg N)时间复杂度下的逆序对数量范围查询

给定一个未排序的包含n个整数的数组,我知道可以使用BIT在O(N lg N)的时间复杂度内找到逆序对的总数,具体方法请参考Count Inversion by BIT。 但是,如果我需要查询任意范围内逆序对的总数,是否可能在O(lg N)的时间复杂度内完成? 可以接受O(N lg N)的预...