#arc036c. [arc036_c]偶然ジェネレータ

[arc036_c]偶然ジェネレータ

题目简介

有一个长度为NN的数列,其仅由0,10,1构成。

现在,有一些地方需要填充,这些地方用问号来代替。

需要知道,有几种方案来填充问号,使得无论从数列中取出怎样的连续的子数列,其子数列中所包含的00的个数和11的个数的差都必须在KK以下。

输入格式

  • 在第11行中,有两个正整数N(1N300)N(1 \le N \le 300)K(1KN)K(1 \le K \le N)。这表示数列的长度为NN,子数列允许的最大差为KK
  • 22行提供长度为NN的字符串,表示这个数列。字符串仅由0011和问号构成
    • 如果从左起ii个字符是00,则表示随机数表的第ii个元素必须是00
    • 如果从左起ii个字符是11,则表示随机数表的第ii个元素必须是11
    • 如果从左起第ii个字符是问号,则随机数表的第ii个元素是0011都可以(也就是需要填充)。

输出格式

输出填充数列中问号的方案的总数对109+710^9+7取模,末尾要换行。