【题解】at_tenka1_2014_final_d 组合数前缀和的维护

为啥这题解区一片莫队??

很多时候需要用到多次查询组合数前缀和的话还是在线比较方便吧。

$$ f(n,m)=\sum_{i=0}^m \binom n i $$

显然有 $f(n,m)=f(n,m-1)+\binom n m$,考虑竖推,

$$ \begin{aligned} f(n-1,m)&=\sum_{i=0}^m \binom {n-1} i\\ f(n,m)&=\sum_{i=0}^m \binom n i \\ &=\sum_{i=0}^m\left(\binom {n-1} {i-1}+\binom {n- 1} i \right) \\ &=2\sum_{i=0}^{m-1}\binom {n-1} i+\binom {n-1} i \\ &=2f(n-1,m)-\binom {n-1} m \end{aligned} $$

然后可以横竖推了。

因为保存的信息量是 $O(1)$ 的,所以直接在平面上撒 $O(n) $ 个点,然后由最近的点推过来就是 $O(\sqrt n)$ 的,具体实现可以在每隔 $\sqrt n$ 行处理一行,每行处理完后保留间隔为 $\sqrt n$ 的 $\sqrt n$ 个点就行了。

运用块长相关知识可以得到间隔是 $O(\dfrac n {\sqrt T})$ 时,时间 $O( n \sqrt {T})$,空间 $O(T)$。

相关:

EI 的低复杂度做法

posted @ 2023-03-16 08:12  寂静的海底  阅读(2)  评论(0编辑  收藏  举报  来源