luogu#P16812. [蓝桥杯 2026 国 Python A] 压缩字符串

[蓝桥杯 2026 国 Python A] 压缩字符串

题目描述

给定一个长度为 NN 的字符串 SS,字符串仅由字符 0011#\# 组成。

你可以对字符串 SS 进行任意次(包括 00 次)“压缩”操作。一次压缩操作的定义如下:选择字符串中两个相邻且均不为 #\# 的字符,删除其中的任意一个。剩余部分的字符将自动拼接在一起。

现给定一个目标长度 KK。请计算:在进行若干次操作后,最终能够得到多少种不同的、长度恰好为 KK 的字符串。由于答案可能很大,请输出方案数对 998244353998244353 取模后的结果。

输入格式

第一行包含两个整数 NNKK,分别表示初始字符串的长度和目标长度。

第二行包含一个长度为 NN 且仅由字符 0011#\# 组成的字符串 SS

输出格式

输出一个整数,表示能够得到的不同字符串的数量对 998244353998244353 取模后的值。

6 4
010#11
5

提示

【样例说明】

能够得到的不同字符串为:

  • 00#1
  • 01#1
  • 10#1
  • 0#11
  • 1#11

55 种。

【评测用例规模与约定】

对于 20%20\% 的评测用例,1N2001 \le N \le 200,字符串 SS 中字符 #\# 的数量不超过 11

对于所有评测用例,1N1051 \le N \le 10^51K20261 \le K \le 2026,且 KNK \le N,字符串 SS 中字符 #\# 的数量不超过 100100