AT_arc036_c.[ARC036C] 偶然ジェネレータ

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

题目简介

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

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

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

输入格式

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

输出格式

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

输入输出样例

  • 输入#1

    9 4
    ?011?1110

    输出#1

    2
  • 输入#2

    9 3
    ?011?1110

    输出#2

    0
  • 输入#3

    9 1
    ???1?????

    输出#3

    1
  • 输入#4

    12 5
    ???0??1??11?

    输出#4

    172

输入解题思路,AI测评打分。不知道怎么写?

首页