atcoder#AGC027E. [AGC027E] ABBreviate

[AGC027E] ABBreviate

分数 : 13001300

问题陈述

有一个由 ab 组成的字符串 ss
Snuke 可以进行以下两种操作,任意次数地按任意顺序执行:

  • 选择一个 aa 的出现作为子串,并将其替换为 b
  • 选择一个 bb 的出现作为子串,并将其替换为 a

通过这一系列操作可以得到多少个字符串 ss
找到结果对 109+710^9 + 7 的模。

约束条件

  • 1s1051 \leq |s| \leq 10^5
  • ssab 组成。

输入

输入格式如下所示,从标准输入中给出:

ss

输出

打印可以获得的字符串数量,结果对 109+710^9 + 7 取模。

aaaa
6

可以获得六个字符串:

  • aaaa
  • aab
  • aba
  • baa
  • bb
  • a
aabb
5

可以获得五个字符串:

  • aabb
  • aaa
  • bbb
  • ab
  • ba
ababababa
1

Snuke 不能进行任何操作。

babbabaaba
35