Loading docs/ds/sparse-table.md +1 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ ST 表能较好的维护“可重复贡献”的区间信息(同时也应满 在算法运行的时候,可能要经过 $\Theta(\log n)$ 次迭代。每一次迭代都可能会使用 GCD 函数进行递归,令值域为 $w$ ,GCD 函数的时间复杂度最高是 $\Omega(\log w)$ 的,所以总时间复杂度看似有 $\Omicron(n\log n\log w)$ 。 但是,在 GCD 的过程中,每一次递归(除最后一次递归之外)都会使数列中的某个数至少减半,而数列中的数最多减半的次数为 $\log_2 (w^n)=\Theta(n\log w)$ ,所以,GCD 的递归部分最多只会运行 $\Omicron(n\log w)$ 次。再加上循环部分(以及最后一次递归)的 $\Theta(n\log n)$ ,最终时间复杂度则是 $\Omicron(n(\log w+\log x))$ ,由于可以构造数据使得时间复杂度为 $\Omega(n(\log w+\log x))$ ,所以最终的时间复杂度即为 $\Theta(n(\log w+\log x))$ 。 但是,在 GCD 的过程中,每一次递归(除最后一次递归之外)都会使数列中的某个数至少减半,而数列中的数最多减半的次数为 $\log_2 (w^n)=\Theta(n\log w)$ ,所以,GCD 的递归部分最多只会运行 $\Omicron(n\log w)$ 次。再加上循环部分(以及最后一层递归)的 $\Theta(n\log n)$ ,最终时间复杂度则是 $\Omicron(n(\log w+\log x))$ ,由于可以构造数据使得时间复杂度为 $\Omega(n(\log w+\log x))$ ,所以最终的时间复杂度即为 $\Theta(n(\log w+\log x))$ 。 而查询部分的时间复杂度很好分析,考虑最劣情况,即每次询问都询问最劣的一对数,时间复杂度为 $\Theta(\log w)$ 。因此,ST 表维护“区间 GCD”的时间复杂度为预处理 $\Theta(n(\log n+\log w))$ ,单次查询 $\Theta(\log w)$ 。 Loading Loading
docs/ds/sparse-table.md +1 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ ST 表能较好的维护“可重复贡献”的区间信息(同时也应满 在算法运行的时候,可能要经过 $\Theta(\log n)$ 次迭代。每一次迭代都可能会使用 GCD 函数进行递归,令值域为 $w$ ,GCD 函数的时间复杂度最高是 $\Omega(\log w)$ 的,所以总时间复杂度看似有 $\Omicron(n\log n\log w)$ 。 但是,在 GCD 的过程中,每一次递归(除最后一次递归之外)都会使数列中的某个数至少减半,而数列中的数最多减半的次数为 $\log_2 (w^n)=\Theta(n\log w)$ ,所以,GCD 的递归部分最多只会运行 $\Omicron(n\log w)$ 次。再加上循环部分(以及最后一次递归)的 $\Theta(n\log n)$ ,最终时间复杂度则是 $\Omicron(n(\log w+\log x))$ ,由于可以构造数据使得时间复杂度为 $\Omega(n(\log w+\log x))$ ,所以最终的时间复杂度即为 $\Theta(n(\log w+\log x))$ 。 但是,在 GCD 的过程中,每一次递归(除最后一次递归之外)都会使数列中的某个数至少减半,而数列中的数最多减半的次数为 $\log_2 (w^n)=\Theta(n\log w)$ ,所以,GCD 的递归部分最多只会运行 $\Omicron(n\log w)$ 次。再加上循环部分(以及最后一层递归)的 $\Theta(n\log n)$ ,最终时间复杂度则是 $\Omicron(n(\log w+\log x))$ ,由于可以构造数据使得时间复杂度为 $\Omega(n(\log w+\log x))$ ,所以最终的时间复杂度即为 $\Theta(n(\log w+\log x))$ 。 而查询部分的时间复杂度很好分析,考虑最劣情况,即每次询问都询问最劣的一对数,时间复杂度为 $\Theta(\log w)$ 。因此,ST 表维护“区间 GCD”的时间复杂度为预处理 $\Theta(n(\log n+\log w))$ ,单次查询 $\Theta(\log w)$ 。 Loading