cf213e

此题用整数hash+线段树处理

线段树维护的是b数组的hash值

首先用整数hash处理出a串的hash值,那么到时候匹配的时候就只用匹配整数的hash值就好了

例如a串:1 2 3  。b串是1 2 3 4那么就用两种匹配方案。一个是1 2 3 一个是 2 3 4  那么我在处理2 3 4的hash的时候就需要将1的hash值减去,这一段用线段树来维护

怎么维护呢,由于最大数不超过n,那么我一个个的数往线段树里面加,那么对应与b的位置往里加,各个hash值就出来了,然后这是前n个数的那么已经可以匹配a串了。然后在后面没加一个数,就相当于我是从a串中的一个数+d实现的,那么我更新那个位置的值,由于每个数都加了d,那么hash的基值也加了d次,所以减去这个值看是否和a串的hash值匹配就好了。匹配一个就加上一个统计就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值