atcoder#ARC131F. [ARC131F] ARC Stamp
[ARC131F] ARC Stamp
题目描述
A
, R
, C
からなる文字列 から始めて、「連続する三文字を選んで ARC
に上書きする」操作を 回以下行ったところ、文字列 が得られました。
さて、最初の文字列 として何通りがあり得るでしょうか?これを で割った余りを求めてください。
输入格式
入力は以下の形式で標準入力から与えられます。
输出格式
答えを出力してください。
题目大意
有一个长度为 的字符串 , 中仅包含 A
,R
和 C
三种字符。我们对 执行如下操作至多 次:选择连续三个字符,修改其为 ARC
。最后我们能得到一个字符串 。
给定 ,请计数可能作为初始字符串 的串。答案对 取模。
。
ARCCARC
1
53
ARARCRCA
5
2187
AARCRRARCC
0
1
AAAAARRRRRCCCCC
131
1
CAARCACRAAARARARCRCRARCARARCRRARC
9
797833187
提示
制約
- は
A
,R
,C
からなる文字列
Sample Explanation 1
例えば、最初の文字列 が次のようなとき、 回以下の操作で文字列 = ARCCARC
を得ることができます。 - = ARCCARC
のとき:操作を行わないでも文字列 ARCCARC
が得られる. - = CRACARC
のとき: の 文字目を選んで ARC
に上書きすると、文字列 ARCCARC
が得られる。 - = ARCCCCC
のとき: の 文字目を選んで ARC
に上書きすると、文字列 ARCCARC
が得られる。 上に挙げたもの以外にもたくさんあり、 としてあり得るものは全部で 通りです。
Sample Explanation 2
最初の文字列 が AAAAAAAA
のとき、例えば次のような 回以下の操作で文字列 = ARARCRCA
を得ることができます。 - ステップ :まず、 文字目を選んで ARC
に上書きすると、文字列 AAARCAAA
が得られる。 - ステップ :次に、 文字目を選んで ARC
に上書きすると、文字列 AAARARCA
が得られる。 - ステップ :次に、 文字目を選んで ARC
に上書きすると、文字列 ARCRARCA
が得られる。 - ステップ :最後、 文字目を選んで ARC
に上書きすると、文字列 ARARCRCA
が得られる。 それ以外にも としてあり得るものはたくさんあり、全部で 通りです。
Sample Explanation 3
回の操作で文字列 = AARCRRARCC
を得られるのは、最初の時点で のとき、すなわち = AARCRRARCC
の 通りしかありません。
Sample Explanation 4
この入力例では、 としてあり得るものは AAAAARRRRRCCCCC
の 通りだけです。
Sample Explanation 5
最初の文字列 としてあり得るものは 通りあるので、これを で割った余りである を出力してください。