21.6.18 t1

tag:组合计数,根号分治


注意到有两种方法计算答案

  • dp,\(f_i\)\(f_{i-1}\) 多一个 \(f_{i-k}\) 的转移点,所以 \(f_i=f_{i-1}+f_{i-k}\)

  • 将一个黑点和前面的 \(k\) 个绑定成一组,枚举有几组,求组合数

单次复杂度分别为 \(O(n)\)\(O(\frac nk)\)

考虑根号分治,对于 \(k\le\sqrt n\),使用第一个算法;对于 \(k>\sqrt n\) 使用第二个算法。

复杂度为 \(O(n\sqrt n+\frac{nm}{\sqrt n})\),也就是 \(O(n\sqrt n)\)

posted @ 2021-06-24 16:39  oisdoaiu  阅读(25)  评论(0编辑  收藏  举报