#P10593. BZOJ2958 序列染色

BZOJ2958 序列染色

题目背景

题目来自原 BZOJ,我们承认题面及原数据的版权均属于原 BZOJ 或将题目授权给 BZOJ 使用的出题人。如果您是版权所有者且认为我们侵犯了您的权益,可联系我们。

题目描述

给出一个长度为 nn,由 B,W,X\tt B,W,X 三种字符组成的字符串 SS,你需要把每一个 X\tt X 染成 B\tt BW\tt W 中的一个。

对于给出的 kk,问由多少种染色方式,使得存在整数 a,b,c,da,b,c,d 满足:

  • 1ab<cdn1\leq a\leq b<c\leq d\leq n
  • b=a+k1b=a+k-1d=c+k1d=c+k-1;
  • Sa=Sa+1==Sb=BS_a=S_{a+1}=\dots=S_b=\tt B
  • Sc=Sc+1==Sd=WS_c=S_{c+1}=\dots=S_d=\tt W

由于方法可能很多,你只需输出最后的答案对 109+710^9+7 取模的结果。

输入格式

第一行输入两个正整数 n,kn,k

第二行输出一个长度为 nn 的字符串 SS

输出格式

输出一行,包含一个整数,表示答案。

5 2
XXXXX
4

提示

对于 20%20\% 的数据,1n201\leq n\leq 20

对于 50%50\% 的数据,1n20001\leq n\leq 2000

对于 100%100\% 的数据,1n,k1061\leq n,k\leq 10^6