计蒜客 阿里天池的新任务

题意

计蒜客

做法

先将(S)后再接一个(S),也就是原(S)的任意一个位置都可以作为左端点开始匹配
(t_0)匹配的位置为(x),则(t_i)匹配的位置是(x+i)(s_{x+i}=(ai+ax+b)~mod~n),然后这样就对(a_x)有限制了
(0equiv mod~2,1equiv mod~2)分开讨论,然后每个限制是一个区间,所有的(i)全部并起来
因为((a,n)=1),所以有唯一位置

再考虑(S)末端有一些位置不够匹配,这部分可以kmp匹配一下减去

原文地址:https://www.cnblogs.com/Grice/p/12833016.html