【WCET 胡策】情書 題解

Shunpower發表於2024-08-03

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\)

然後考慮分成兩類處理。

\(S\) 是迴圈的

相關文章