编程题
### 问题描述 在一个风和日丽的下午,苏苏正在悠闲地学习竞赛知识,这个时候,她的好朋友球球发来一道消息,向苏苏询问一个问题,想知道苏苏会不会?问题的描述如下: 给定一个长度为 $n$ 的字符串,字符串中只包含了 `'0'` 和 `'1'`,定义字符串的贡献值为字符串中连续的 `'1'` 出现的次数的平方的和。例如:字符串 `1011001` 的贡献值为 $1^2+2^2+1^2=6$。 现在球球将字符串中的某些字符(可能零个或多个)改成了 `'?'`,即这些被修改成 `'?'` 的字符中是 `'0'` 还是 `'1'` 的概率都占 $\dfrac{1}{2}$。问修改之后的字符串的贡献值的期望是多少(答案对 $10^9+7$ 取模)? 例如:对于字符串 `11?00`,当字符 `'?'` 是 `'0'` 的时候,则字符串为 `11000`,其贡献值为 $2^2=4$;当字符 `'?'` 是 `'1'` 的时候,则字符串为 `11100`,其贡献值为 $3^2=9$;所以这个字符串的贡献值的期望为 $\dfrac{4+9}{2}=\dfrac{13}{2}$。 ### 输入格式 第一行包含一个整数 $n$,表示字符串的长度。 第二行包含一个字符串 $S$,表示上述问题中被修改的字符串,且仅由 `'0','1','?'` 三种字符组成。 ### 输出格式 输出包含一个整数,为期望对 $10^9+7$ 取模的结果。 令 $M=10^9+7$,可以证明所求概率可以写成既约分数 $\dfrac{p}{q}$ 的形式,其中 $p,q$ 均为整数且 $q\not\equiv 0 (mod \ M)$。输出的整数应当是 $p \cdot q^{-1}(mod\ M)$。 ### 样例输入 ```text 5 11?00 ``` ### 样例输出 ```text 500000010 ``` ### 评测数据规模 对于所有的评测数据,$1 \leq n \leq 2 \times 10^5$。
查看答案
赣ICP备20007335号-2