atcoder#AGC033E. [AGC033E] Go around a Circle
[AGC033E] Go around a Circle
题目描述
円周が 個の点によって 等分され、それぞれが赤か青のいずれかで塗られているような円が、 R
と B
からなる長さ の文字列 をすべての点から生成するとは、以下の条件を満たすことを指します。
- 円周上の 個の点のうち つを任意に選び、その点上に駒を置く。
- 駒を時計回り、または反時計回りに隣合う点まで動かすことを 回繰り返す。
- このとき最初にどの点を選んだとしても、うまく動かす向きを定めることで、 回目に駒が通る円弧の色が であるようにできる。
ただし、 は R
のとき赤を、B
のとき青を指すものとします。 また駒を動かす向きは、最初に選ぶ点ごとに変えられることに注意してください。
実際に R
と B
からなる長さ の文字列 が与えられます。 円周が 等分されている円の各円弧を赤または青のいずれかで塗る 通りの方法のうち、 をすべての点から生成するような塗り方の個数を で割ったあまりを求めてください。
ただし、回転して一致するような塗り方も区別して数えます。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
条件を満たすような各円弧の塗り方の個数を で割ったあまりを出力せよ。
题目大意
有一个圆,圆弧被 个点分成了等长的 段,每段被染成了红色或蓝色。给定一个长为 的只包含 和 的字符串 , 代表红色, 代表蓝色。
求出有多少种给圆弧染色的方案,满足将棋子放在任意一个点上,都存在一种进行 次操作的方案,每次操作选择将棋子顺时针或逆时针移动一段,使得第 次经过的段的颜色为 。
答案对 取模。
如果两种方案旋转后相同,它们视作不同的方案。
4 7
RBRRBRR
2
3 3
BBB
4
12 10
RRRRBRRRRB
78
提示
制約
- は
R
またはB
Sample Explanation 1
赤と青が交互に塗られているときのみ条件を満たします。 なので、このケースの答えは となります。