luogu#P7044. 「MCOI-03」括号

「MCOI-03」括号

题目背景

MCOI q 群的日常 ……

一只书虫仔:挖不到钻石,我要哭了(笑)
WAPER420:我们分明次次挖到钻石啊(疑惑)
一只书虫仔:(友善的笑容)
7KByte:为什么你们都喜欢加括号啊(呆呆地望着)
一只书虫仔:(笑)
WAPER420:(笑)
鏡音リン:(笑)
7KByte:(笑)


本题中 合法括号串 的定义如下:

  1. 空串是合法括号串。
  2. 如果 A 是合法括号串,则 (A) 是合法括号串。
  3. 如果 AB 是合法括号串,则 AB 是合法括号串。

本题中 子串 的定义如下:

字符串 SS 的子串是 SS 中连续的任意个字符组成的字符串。SS 的子串可用起始位置 ll 与终止位置 rr 来表示,记为 S(l,r)S(l,r)1lrS1 \leq l \leq r \leq |S|S|S | 表示 S 的长度)。

题目描述

定义一个括号串的 00 级偏值为将该括号串修改为 合法括号串 需要的最小操作数。一次操作你可以在一个位置 添加 一个括号或者 删除 一个位置的括号。

定义一个括号串的 i (i>0)i\ (i>0) 级偏值为该串 所有子串i1i-1 级偏值之和。

现在你需要求出一个长度为 NN 的括号串 SSKK 级偏值。答案可能很大,输出对 998244353998244353 取模后的结果。

输入格式

第一行包括两个整数 N,KN,K

第二行一个字符串代表括号序列 SS

输出格式

一行一个整数代表答案对 998244353998244353 取模的结果。

3 1
(()
6
3 2
(()
15

提示

样例说明

对于样例 11SS 的所有子串的 00 级代价为:

  • (\texttt{(},代价为 11
  • (\texttt{(},代价为 11
  • )\texttt{)},代价为 11
  • ((\texttt{((},代价为 22
  • ()\texttt{()},代价为 00
  • (()\texttt{(()},代价为 11

总和为 1+1+1+2+0+1=61+1+1+2+0+1=6

数据规模与约定

本题采用捆绑测试。

子任务编号 NN\le KK\le 分值
11 55 33
22 5×1035\times 10^3 11 1010
33 10610^6 1212
44 10210^2 1010
55 5×1035\times10^3 5×1035\times 10^3 2020
66 10610^6 4545

对于 100%100\% 的数据,1N,K1061 \le N,K \le 10^6


原 idea:WAPER420