atcoder#ARC119F. [ARC119F] AtCoder Express 3

[ARC119F] AtCoder Express 3

题目描述

AtCoder 鉄道には N+1 N+1 個の駅があり、駅には 0 0 から N N までの番号が付けられています。ここではかつて、各 i i (0  i  N1) (0\ \leq\ i\ \leq\ N-1) に対して駅 i i と駅 i+1 i+1 の間を双方向に 1 1 分で走行する 普通列車 のみが運行されていました。

しかし、ある日鉄道会社は「光速派」と「準急派」の 2 2 つのグループに分裂し、駅 0 0 と駅 N N を除く各駅は光速派と準急派のうち片方が管理することになりました。駅 j j (1  j  N1) (1\ \leq\ j\ \leq\ N-1) を管理するグループは文字 cj c_j で表され、A は光速派が、B は準急派が管理すること、? はまだ決まっていないことを表します。駅 0 0 と駅 N N は重要な駅なので、両方が管理します。

ここで、光速派と準急派は、普通列車に加えて新たに 2 2 種類の鉄道路線を作ることにしました。

光速列車:光速派が管理する駅の番号を昇順に a0, a1, , as a_0,\ a_1,\ \dots,\ a_s として、各 k k に対して駅 ak a_k と駅 ak+1 a_{k+1} の間を双方向に 1 1 分で走行する。

準急列車:準急派が管理する駅の番号を昇順に b0, b1, , bt b_0,\ b_1,\ \dots,\ b_t として、各 k k に対して駅 bk b_k と駅 bk+1 b_{k+1} の間を双方向に 1 1 分で走行する。

? の個数を q q として、作られる鉄道路線は 2q 2^q 通り考えられます。その中で、K K 分以内の乗車で駅 0 0 から駅 N N に行けるようになるものは何通りあるでしょうか?これを 109+7 10^9+7 で割った余りを求めてください。

输入格式

入力は以下の形式で標準入力から与えられます。

N N K K c1 c_1 c2 c_2 \cdots cN1 c_{N-1}

输出格式

答えを 109+7 10^9+7 で割った余りを出力してください。

题目大意

N+1N+1 个点 ,标号为 00NN 。对于 i (0iN1)i \ (0\leq i \leq N-1) ,存在一条无向边连接 点 ii 和点 i+1i+1

AABB 两种类型的点,每个点与其最近的同类型点有一条无向边相连。特别的,点 00 和点 NN 既属于 AA 类型点也属于 BB 类型点。

部分点已确认类型,对剩下点分类,求有多少种分类方式使得 00NN 存在一条长度小于等于 KK 的路径 (mod 109+7)(\rm mod \ 10^{9}+7)

  • 2  N  4000 2\ \leq\ N\ \leq\ 4000
  • 1  K  N+12 1\ \leq\ K\ \leq\ \frac{N+1}{2}
8 3
A??AB?B
4
11 6
???B??A???
256
16 5
?A?B?A?B?A?B?A?
10
119 15
????????A?????????????????????????BA????????????????????????AB???????A???????????B?????????????????????????????A??????
313346281

提示

制約

  • 2  N  4000 2\ \leq\ N\ \leq\ 4000
  • 1  K  N+12 1\ \leq\ K\ \leq\ \frac{N+1}{2}
  • N, K N,\ K は整数
  • c1, c2, , cN1 c_1,\ c_2,\ \dots,\ c_{N-1} はそれぞれ AB? のいずれか

Sample Explanation 1

ここでは 23 = 8 2^3\ =\ 8 通りの鉄道路線がありえますが、そのうち以下の 4 4 通りについて、3 3 分以内の乗車で駅 0 0 から駅 8 8 に行くことが可能です。 - 駅 2, 3, 6 2,\ 3,\ 6 を光速派が管理する場合:駅 $ 0\ \rightarrow\ 5\ \rightarrow\ 7\ \rightarrow\ 8 $ と移動する(下図の #1 に対応) - 駅 2, 3 2,\ 3 を光速派が、駅 6 6 を準急派が管理する場合:駅 $ 0\ \rightarrow\ 5\ \rightarrow\ 4\ \rightarrow\ 8 $ と移動する(下図の #2 に対応) - 駅 2 2 を光速派が、駅 3, 6 3,\ 6 を準急派が管理する場合:駅 $ 0\ \rightarrow\ 3\ \rightarrow\ 4\ \rightarrow\ 8 $ と移動する(下図の #4 に対応) - 駅 2, 3, 6 2,\ 3,\ 6 を準急派が管理する場合:駅 $ 0\ \rightarrow\ 1\ \rightarrow\ 4\ \rightarrow\ 8 $ と移動する(下図の #8 に対応) したがって、答えは 4 4 通りとなります。これを図で表すと、以下のようになります。下図においては、赤色が光速派のみが管理する駅や光速列車の路線、青色が準急派のみが管理する駅や準急列車の路線を表すものとします。 ![ ](https://img.atcoder.jp/arc119/db3f88315c456535f7ce57116009c126.png)

Sample Explanation 2

ここでは、28 = 256 2^8\ =\ 256 通りの組み合わせすべてについて、駅 0 0 から駅 11 11 まで 6 6 分以内の乗車で行くことが可能です。

Sample Explanation 3

以下の図に示される 10 10 通りの組み合わせについて、駅 0 0 から駅 16 16 まで 5 5 分以内の乗車で行くことが可能です。 ![ ](https://img.atcoder.jp/arc119/4b879e19b8c1cd7eac9d52eb0ea58e5c.png)

Sample Explanation 4

条件を満たすものは 1623310324709451 1623310324709451 通りありますが、これを 109 + 7 10^9\ +\ 7 で割った余りである 313346281 313346281 を出力してください。