Statement
給你兩個字串 \(S,T\),你需要求出字串 \(S\) 重複 \(t\) 次之後,\(T\) 的複製串(包括原串)在 \(S\) 中的出現次數,對 \(10^9+7\) 取模。
\(1\leq |S|,|T|\leq 10^6,1\leq t\leq 10^9\)。
Solution
首先,針對 \(|S|\leq|T|\) 的情況,我們先複製至 \(|S|>|T|\)。如果不能成功,可以直接特判。所以對於下文均有 \(|S|>|T|\)。
我們定義“串 \(Q\) 是迴圈的”,當且僅當 \(Q\) 存在一個字首 \(P\) 滿足將 \(P\) 複製至少兩次後可以得到 \(Q\)。
然後考慮分成兩類處理。