AT_arc119_f [ARC119F] AtCoder Express 3

题目描述

AtCoder 铁道有 $N+1$ 个车站,车站编号从 $0$ 到 $N$。过去,每个 $i$($0 \leq i \leq N-1$)之间仅有普通列车运行,普通列车可以在车站 $i$ 和车站 $i+1$ 之间双向行驶,每次耗时 $1$ 分钟。 然而,某一天,铁道公司分裂为“光速派”和“准急派”两个集团,除了车站 $0$ 和车站 $N$ 以外,其余每个车站都由这两派中的一方管理。对于车站 $j$($1 \leq j \leq N-1$),其管理方用字符 $c_j$ 表示,`A` 表示由光速派管理,`B` 表示由准急派管理,`?` 表示尚未决定。车站 $0$ 和车站 $N$ 是重要车站,由双方共同管理。 在此基础上,光速派和准急派决定,除了普通列车外,各自再新建一种铁道路线: > **光速列车**:将光速派管理的车站编号按升序记为 $a_0, a_1, \dots, a_s$,对于每个 $k$,在车站 $a_k$ 和 $a_{k+1}$ 之间新建一条双向线路,每次耗时 $1$ 分钟。 > > **准急列车**:将准急派管理的车站编号按升序记为 $b_0, b_1, \dots, b_t$,对于每个 $k$,在车站 $b_k$ 和 $b_{k+1}$ 之间新建一条双向线路,每次耗时 $1$ 分钟。 记 `?` 的个数为 $q$,则所有可能的铁道路线共有 $2^q$ 种。在这些方案中,有多少种可以使得从车站 $0$ 出发,在 $K$ 分钟以内到达车站 $N$?请输出方案数对 $10^9+7$ 取模的结果。

输入格式

输入按以下格式从标准输入读入: > $N$ $K$ $c_1$ $c_2$ $\cdots$ $c_{N-1}$

输出格式

输出方案数对 $10^9+7$ 取模的结果。

说明/提示

### 限制条件 - $2 \leq N \leq 4000$ - $1 \leq K \leq \frac{N+1}{2}$ - $N, K$ 均为整数 - $c_1, c_2, \dots, c_{N-1}$ 分别为 `A`、`B` 或 `?` ### 样例解释 1 此时共有 $2^3 = 8$ 种铁道路线,其中有以下 $4$ 种可以在 $3$ 分钟以内从车站 $0$ 到达车站 $8$: - 车站 $2, 3, 6$ 均由光速派管理:可按 $0 \rightarrow 5 \rightarrow 7 \rightarrow 8$ 行驶(对应下图 #1) - 车站 $2, 3$ 由光速派管理,车站 $6$ 由准急派管理:可按 $0 \rightarrow 5 \rightarrow 4 \rightarrow 8$ 行驶(对应下图 #2) - 车站 $2$ 由光速派管理,车站 $3, 6$ 由准急派管理:可按 $0 \rightarrow 3 \rightarrow 4 \rightarrow 8$ 行驶(对应下图 #4) - 车站 $2, 3, 6$ 均由准急派管理:可按 $0 \rightarrow 1 \rightarrow 4 \rightarrow 8$ 行驶(对应下图 #8) 因此答案为 $4$。下图中,红色表示仅由光速派管理的车站及其光速列车线路,蓝色表示仅由准急派管理的车站及其准急列车线路。 ![](https://img.atcoder.jp/arc119/db3f88315c456535f7ce57116009c126.png) ### 样例解释 2 此时 $2^8 = 256$ 种组合下,所有方案都可以在 $6$ 分钟以内从车站 $0$ 到达车站 $11$。 ### 样例解释 3 下图所示的 $10$ 种组合可以在 $5$ 分钟以内从车站 $0$ 到达车站 $16$。 ![](https://img.atcoder.jp/arc119/4b879e19b8c1cd7eac9d52eb0ea58e5c.png) ### 样例解释 4 满足条件的方案有 $1623310324709451$ 种,对 $10^9+7$ 取模后输出 $313346281$。 由 ChatGPT 4.1 翻译