AT_arc194_d.[ARC194D] Reverse Brackets

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

满足以下任一条件的字符串定义为合法括号序列:

  • 空字符串
  • 存在某个正确括号序列 AA,将 (、AA、) 按此顺序连接形成的字符串
  • 存在非空的正确括号序列 AA 和 BB,将 AA 和 BB 按此顺序连接形成的字符串

给定一个长度为 NN 的合法括号序列 SS。你可以进行任意次以下操作:

  • 选择 SS 的一个连续子字符串(该子字符串本身必须是合法括号序列),将其 反転 。

这里,将 SS 的第 ll 到第 rr 个字符组成的连续子字符串 反転 的定义如下:

  • 对于满足 l≤i≤rl \leq i \leq r 的所有整数 ii,同时将 SiS_i 替换为:若 Sl+r−iS_{l+r-i} 是 ( 则替换为 ),若 Sl+r−iS_{l+r-i} 是 ) 则替换为 (。(注意:此处的 反転 定义与通常的 反转 不同)

请计算操作结束后可能存在的不同 SS 的数量,结果对 998244353998244353 取模。

输入格式

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

NN SS

输出格式

输出答案。

输入输出样例

  • 输入#1

    6
    (())()

    输出#1

    2
  • 输入#2

    2
    ()

    输出#2

    1

说明/提示

约束条件

  • 1≤N≤50001 \leq N \leq 5000
  • ∣S∣=N|S|=N
  • SS 是正确括号序列

样例解释 1

例如,通过以下操作可以将 SS 变为 ()(()):

  • 选择 SS 的第 11 到第 66 个字符作为连续子字符串(这是一个合法括号序列)。此时 SS 变为 ()(())。

其他可以生成的 SS 只有 (())()。因此答案为 22。

翻译由 DeepSeek R1 完成

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

首页