此题用整数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值匹配就好了。匹配一个就加上一个统计就可以了。