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)\)