#HT12697. 定段

定段

当前没有测试数据。

题目描述

给定一个长度为 nn 的字符串 ss,其中每个字符是 00、11 或 ??。你需要把每个 ?? 独立替换为 00 或 11。

一个非空二进制字符串的一个“段”是一个极长的、字符全部相同的连续子串。例如,00111000011100 依次包含长度为 2,3,22,3,2 的三个段。

替换完成后的字符串需要满足:

  1. 恰好包含 kk 个段;
  2. 每个全为 00 的段长度都在 [L0,R0][L_0, R_0] 内;
  3. 每个全为 11 的段长度都在 [L1,R1][L_1, R_1] 内。

求合法替换方案数,对 998244353998244353 取模。

输入格式

第一行六个整数 n,k,L0,R0,L1,R1n, k, L_0, R_0, L_1, R_1。

第二行一个长度为 nn 的字符串 ss。

输出格式

输出一个整数,表示合法替换方案数对 998244353998244353 取模的结果。

样例

5 3 1 2 1 3
?0??1
2

样例解释 两种合法结果为 10011 和 10111。

数据规模与约定

  • 1≤n≤30001 \le n \le 3000;
  • 1≤k≤n1 \le k \le n;
  • 1≤L0≤R0≤n1 \le L_0 \le R_0 \le n;
  • 1≤L1≤R1≤n1 \le L_1 \le R_1 \le n;
  • ss 仅包含 00、11、??;

共 20 个测试点,每个测试点 5 分。下表各行所列测试点共同满足对应的额外约束。

测试点编号 分值 额外约束
1∼21 \sim 2 1010 n≤18n \le 18
3∼53 \sim 5 1515 n≤100n \le 100
6∼76 \sim 7 1010 k≤2k \le 2
8∼108 \sim 10 1515 ss 中所有字符均为 ??
11∼1311 \sim 13 R0,R1≤10R_0,R_1 \le 10
14∼1614 \sim 16 n≤1500n \le 1500

原题链接

原题链接