AT_abc359_d.[ABC359D] Avoid K Palindrome

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定一个由 A、B、? 组成的长度为 NN 的字符串 SS。

给定一个正整数 KK。如果一个仅由 A、B 组成的字符串 TT 满足以下条件,则称 TT 为好字符串:

  • TT 的任意长度为 KK 的连续子串中,都不存在回文串。

设 SS 中包含 qq 个 ?。将这 qq 个 ? 分别替换为 A 或 B,一共可以得到 2q2^q 种不同的字符串。请你求出其中有多少种是好字符串。

由于答案可能非常大,请输出答案对 998244353998244353 取模的结果。

输入格式

输入通过标准输入给出,格式如下:

NN KK SS

输出格式

请输出答案。

输入输出样例

  • 输入#1

    7 4
    AB?A?BA

    输出#1

    1
  • 输入#2

    40 7
    ????????????????????????????????????????

    输出#2

    116295436
  • 输入#3

    15 5
    ABABA??????????

    输出#3

    0
  • 输入#4

    40 8
    ?A?B??B?B?AA?A?B??B?A???B?BB?B???BA??BAA

    输出#4

    259240

说明/提示

限制条件

  • 2≤K≤N≤10002 \leq K \leq N \leq 1000
  • K≤10K \leq 10
  • SS 由 A、B、? 组成
  • SS 的长度为 NN
  • N,KN,K 均为整数

样例解释 1

给定的字符串中有 22 个 ?。将这 22 个 ? 分别替换为 A 或 B,一共可以得到如下 44 种字符串:

  • ABAAABA
  • ABAABBA
  • ABBAABA
  • ABBABBA
    其中,除了第一个 ABAAABA,其余 33 个字符串都包含长度为 44 的回文子串 ABBA,因此不是好字符串。故输出 1。

样例解释 2

请注意,要求输出好字符串的个数对 998244353998244353 取模的结果。

样例解释 3

也有可能无论如何替换 ? 都无法得到好字符串。

由 ChatGPT 4.1 翻译

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

首页