说实话个人不是很喜欢根号类的算法,毕竟能 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

根号分治是一种结合暴力处理与预处理优点的算法策略,通过将问题分为大于和小于n的平方根两部分,有效降低时间复杂度。本文通过例1和例2详细解释了根号分治如何应用于01串子串计数和序列查询优化,展示了其在解决哈希冲突和序列操作问题中的实用性。
最低0.47元/天 解锁文章
362

被折叠的 条评论
为什么被折叠?



