Official
B - Many 110 Editorial by gazelle
まず、\(T\) が \(S\) に部分文字列として \(1\) 回以上含まれているかを考えます。これは \(S\) が \(\textrm{mod } 3\) で周期的な構造を持っていることから、(\(T\) の先頭の添字 \(\textrm{mod } 3\) )が何であるかで \(3\) 通りの場合分けを行うことで調べることができます。
\(T\) が \(S\) に \(1\) 回も含まれなければ、答えは \(0\) です。\(T\) が \(S\) に \(1\) 回以上含まれる場合を考えます。
- \(T = \)
1
のとき、答えは \(2 \times 10^{10}\) - \(T = \)
11
のとき、答えは \(10^{10}\) - それ以外のとき、\(T\) は必ず
0
を含む。\(T\) が含む0
の個数を \(K\) とする。\(T\) が含む \(K\) 個の0
を、\(S\) が含む \(10^{10}\) 個の0
のどの部分と対応させるかを考える。すると、\(T\) の末尾が0
の場合、答えは \(10^{10} - K + 1\)、\(T\) の末尾が1
の場合、答えは \(10^{10} - K\)
posted:
last update: