标签:就是 不同 一个 bsp 区间 答案 不等式 nbsp 相同
不考虑构造原串再匹配
考虑开始位置满足什么条件才能匹配。
显然,开始位置确定,后面的字符都确定了。
而且,a,n互质,所以必然能遍历n的剩余系,从不同位置开始,初始的a*s+b mod n的值互不相同。
设初始点为s,x=a*s+b mod n
由上分析可知,s,x一 一对应。
x开始的第i位就是:x+(i-1)*b % n
如果满足条件,对于m位中的每一位,
如果m这一位是0,有:x+(i-1)*b mod n<p
否则有p<=x+(i-1)*b mod n <n
于是有了m个方程。
对于每个方程的合法的解x,都唯一对应一个出发的匹配点s
所以,方程的解数就是答案。
其实不等式比较好解,每个不等式的合法值是一个区间,最多两段。
但是,由于每个不等式的解可能分两段,取交并不方便。
所以,转化为每个不等式不合法的解,对这些区间取并即可。
标签:就是 不同 一个 bsp 区间 答案 不等式 nbsp 相同
原文地址:https://www.cnblogs.com/Miracevin/p/9866687.html