设最终记录下来的符号串为字符串 s(仅含 0/1)。一次原始写入动作会产生 1 个或 2 个相同符号:
0:产生 0 或 00;动作 1:产生 1 或 11。观察可知:一次写入动作不会跨越符号种类边界,因此答案对每个由相同字符组成的连续段(run) 彼此独立,再把每段的方案数相乘即可。
对一个长度为 k 的 0(或 1)连续段,我们要把它切分成若干块,每块长度只能是 1 或 2(分别代表一次写入动作写下 1 个或 2 个相同的符号)。
在一台古老的记录装置中,只能写入两种符号:L 和 R。一次原始写入动作可以选择一个符号,并写下该符号的 1 个或 2 个连续副本。具体来说,动作 L 可以留下 L 或 LL,动作 R 可以留下 R 或 RR。
给定最终记录下来的符号串 w,问有多少种不同的原始写入动作序列能够按顺序拼接出 w。
由于答案可能很大,请对 109+7 取模。
测试用例数不超过 10^5,每个字符串长度至少为 1,所有字符串的长度之和不超过 2×105。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册