根号分治

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

说实话个人不是很喜欢根号类的算法,毕竟能 log l o g 不想根号,但是毕竟有很多根号类的算法是 log l o g 无法替代的,就比如说下面这个算法。(或者更确切的说这是一种思想)

根号分治

根号分治,顾名思义,就是把大的问题拆成小的问题,不过根号分治不是从中间切的,而是从 n n 的地方切的,具体怎么说呢,我们举个栗子。

例1

题目大意

给你一个长度为 n n 的01串 S ,然后有 m m 次询问,每次询问给定一个长度为 w i 的01串 Q Q ,求 S 中和 Q Q 长度相同且包含 1 个数相同的子串的个数。
1n2×105 1 ≤ n ≤ 2 × 10 5
1m2×105 1 ≤ m ≤ 2 × 10 5
1mi=1

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值