#P13137. [ARC089F] ColoringBalls

    ID: 12321 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 9 上传者: 标签>CF2600组合数学枚举数学DFS计数DP构造

[ARC089F] ColoringBalls

题目描述

NN 个编号为 1,2,...,N1,2,...,N 的白球按顺序排成一行。AtCoDeer 君想用红色和蓝色给这些球染色。最终,可能还会有部分球保持白色。

给定一个长度为 KK 的字符串 ss。AtCoDeer 君将对 i=1i=1i=Ki=K 依次进行如下操作:

  • ii 次操作:选择一段连续的球区间(可以为空),如果 ss 的第 ii 个字符为 r,则用红色染色;如果为 b,则用蓝色染色。

注意,如果对已染色的球再次染色,则会覆盖原有的颜色。另外,由于染料的限制,尚未被染色的白球不能直接用蓝色染色。即,当 ss 的第 ii 个字符为 b 时,不能选择包含白球的区间。

所有操作结束后,问可能得到多少种不同的球颜色排列。由于答案可能很大,请输出对 109+710^9+7 取模的结果。

输入格式

输入通过标准输入给出,格式如下:

NN KK ss

输出格式

请输出所有操作结束后可能得到的球颜色排列数量,对 109+710^9+7 取模。

输入输出样例 #1

输入 #1

2 2
rb

输出 #1

9

输入输出样例 #2

输入 #2

5 2
br

输出 #2

16

输入输出样例 #3

输入 #3

7 4
rbrb

输出 #3

1569

输入输出样例 #4

输入 #4

70 70
bbrbrrbbrrbbbbrbbrbrrbbrrbbrbrrbrbrbbbbrbbrbrrbbrrbbbbrbbrbrrbbrrbbbbr

输出 #4

841634130

说明/提示

限制条件

  • 1N701 \leq N \leq 70
  • 1K701 \leq K \leq 70
  • s=K|s| = K
  • ss 仅由 rb 组成
  • N,KN,K 均为整数

样例解释 1

若用 r 表示红色,b 表示蓝色,w 表示白色,则最终可能出现的球颜色排列有以下 99 种:ww, wr, rw, rr, wb, bw, bb, rb, br

样例解释 2

由于不能直接将白球染成蓝色,所以第一次操作只能选择空区间。