#370. [R59E]01序列
[R59E]01序列
时空限制
1S/512M
题目描述
定义一个 01 字符串的权值为其中 0110 子序列 的数量。
现在给定一个长度为 的 01 字符串 ,请你求出 的所有连续子串的权值之和。
由于答案可能非常大,请将最终结果对 取模后输出。
:子序列是指从原字符串中删除若干个(可以不删)字符,剩余字符按照原有顺序拼接而成的字符串。例如 0110 是 01010 的子序列,但不是连续子串。
格式
输入格式
第一行包含一个整数 ,表示字符串长度。
第二行包含一个长度为 、且仅由字符 0 和 1 组成的字符串 。
输出格式
第一行输出一个整数,表示 的所有连续子串的权值之和对 取模后的结果。
样例
样例输入 #1
5
01100
样例输出 #1
3
样例解释 #1
字符串 01100 的所有连续子串中,只有以下子串包含 0110 子序列:
- 子串
0110:包含 个0110子序列。 - 子串
01100:包含 个0110子序列(分别为原串中下标为 和 的字符组成的序列)。
其他所有的子串(如 011、1100 等)权值均为 。
因此,所有子串的权值之和为 。
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 | 分数 | |
|---|---|---|
对于 的数据,,字符串 仅包含字符 0 和 1。
Related
In following contests: