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: