小Z定义一个字符串的权值为:该字符串包含的"abba"子序列的数量。
给定一个字符串,试求它的所有连续子串的权值和。答案请对(10^9 + 7)取模。
子串定义:字符串删除一个前缀和一个后缀(也可以不删)得到的字符串。例如,"arcaea"的子串有"arc"、"ca"等。
子序列定义:字符串删除若干个字符(也可以不删)得到的字符串。例如,"arcaea"的子序列有"aca"等。
输入一个仅包含小写字母'ab'的字符串。
所有连续子串的权值和。答案对(10^9 + 7)取模。
abbaa
3
"abba"的权值为 1,"abbaa"的权值为 2。权值之和为 1 + 2 = 3。
- 对于10%的数据,保证字符串长度不超过20。
- 对于20%的数据,保证字符串长度不超过200。
- 对于30%的数据,保证字符串长度不超过2000。
- 对于50%的数据,保证字符串长度不超过(10^5)。
- 对于80%的数据,保证字符串长度不超过(10^6)。
- 对于100%的数据,保证字符串长度不超过(5\times 10^6)。
时间限制 | 1 秒 |
内存限制 | 256 MB |