说实话个人不是很喜欢根号类的算法,毕竟能 log l o g 不想根号,但是毕竟有很多根号类的算法是 log l o g 无法替代的,就比如说下面这个算法。(或者更确切的说这是一种思想)
根号分治
根号分治,顾名思义,就是把大的问题拆成小的问题,不过根号分治不是从中间切的,而是从 n−−√ n 的地方切的,具体怎么说呢,我们举个栗子。
例1
题目大意
给你一个长度为 n n 的01串
,然后有 m m 次询问,每次询问给定一个长度为
的01串 Q Q ,求
中和 Q Q 长度相同且包含
个数相同的子串的个数。
1≤n≤2×105 1 ≤ n ≤ 2 × 10 5
1≤m≤2×105 1 ≤ m ≤ 2 × 10 5
1≤∑mi=1