淀粉质问题求复杂度证明

题目总版

user100566 @ 2024-11-07 08:57:37

树上点对距离问题中,为了去重,有的算法会在子树中减去重复数量。

形式化的,设当前分治树根为 TT 的直接子结点树为 T_1,T_2,T_3,\dots,T_m

$g(x, y)$ 用尺取法计算当前分治树根意义下,以 $x$ 为根的树中满足 $dis(x, s)+dis(x,t)\le y$ 的点对 $(s, t)$ 数量,即不限制点对在同一个子树中的 $f$。 则 $f(T, k)=g(T, k)-\Sigma_{i=1}^mf(T_i, k-2dis(T, T-i))

如果不考虑去重问题,算法的主要复杂度在排序上,复杂度上界为

O(n*\log n+2*\frac{n}{2}*\log \frac{n}{2}+4*\frac{n}{4}*\log \frac{n}{4}+...+n*\frac{n}{n}*\log \frac{n}{n}) =O(n*\Sigma_{i=0}^{\log_2 n}\log\frac{n}{2^i}) =O(n*\Sigma_{i=0}^{\log_2 n}i) =O(n(\log n)^2)

by user100566 @ 2024-11-07 09:03:31

修正:

f(T, k)=g(T,k)-\Sigma_{i=1}^mf(T_i, k-2dis(T, T_i))

|