AT_agc071_b.[AGC071B] Maximum Bracket Subsequence

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定整数 N,KN, K 以及一个由 ( 和 ) 组成的长度为 KK 的合法括号序列 SS。

请统计满足以下所有条件的长度为 NN 的 ( 和 ) 组成的字符串 TT 的数量,结果对 998244353998244353 取模:

  • TT 中存在一个长度为 KK 的合法括号子序列
  • 在 TT 的所有长度为 KK 的合法括号子序列中,字典序最大的那个等于 SS

此处定义 ( 的字典序小于 )。

合法括号序列的定义
合法括号序列是指可以通过 00 次或多次删除 () 这样的子串最终得到空字符串的序列。

子序列的定义
字符串 SS 的子序列是指通过删除 SS 中 00 个或多个字符(不改变剩余字符顺序)得到的字符串。

字典序的定义
字符串 S=S1S2…S∣S∣S = S_1S_2\ldots S_{|S|} 比字符串 T=T1T2…T∣T∣T = T_1T_2\ldots T_{|T|} 字典序小,当且仅当满足以下任一条件(其中 ∣S∣,∣T∣|S|, |T| 分别表示字符串 S,TS, T 的长度):

  1. ∣S∣<∣T∣|S| < |T| 且 S1S2…S∣S∣=T1T2…T∣S∣S_1S_2\ldots S_{|S|} = T_1T_2\ldots T_{|S|}。
  2. 存在整数 1≤i≤min⁡{∣S∣,∣T∣}1 \leq i \leq \min\{ |S|, |T| \} 满足:
    • S1S2…Si−1=T1T2…Ti−1S_1S_2\ldots S_{i-1} = T_1T_2\ldots T_{i-1}
    • SiS_i 的字典序小于 TiT_i

输入格式

输入从标准输入按以下格式给出:

NN KK SS

输出格式

输出答案。

输入输出样例

  • 输入#1

    7 4
    (())

    输出#1

    20
  • 输入#2

    20 4
    ()()

    输出#2

    1047225
  • 输入#3

    71 10
    ()(()())()

    输出#3

    190654464
  • 输入#4

    10000000 28
    (()()(()))(()((()))())()(())

    输出#4

    769035381

说明/提示

约束条件

  • K≤N≤107K \leq N \leq 10^7
  • 2≤K≤5×1052 \leq K \leq 5 \times 10^5
  • N,KN, K 为整数
  • SS 是由 ( 和 ) 组成的长度为 KK 的合法括号序列

样例解释 #1

例如当 T=T= ((()))) 时,TT 中长度 44 的合法括号子序列只有 (()),这与 SS 相等,因此满足条件。
当 T=T= ((())() 时,TT 中存在两个长度 44 的合法括号子序列 ()() 和 (()),其中字典序最大的 ()() 不等于 SS,因此不满足条件。

翻译由 DeepSeek R1 完成

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

首页