[CSP-S 2023] 消消乐


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C++

[CSP-S 2023] 消消乐

题目描述

小 L 现在在玩一个低配版本的消消乐,该版本的游戏是一维的,一次也只能消除两个相邻的元素。

现在,他有一个长度为 \(n\) 且仅由小写字母构成的字符串。我们称一个字符串是可消除的,当且仅当可以对这个字符串进行若干次操作,使之成为一个空字符串。

其中每次操作可以从字符串中删除两个相邻的相同字符,操作后剩余字符串会拼接在一起。

小 L 想知道,这个字符串的所有非空连续子串中,有多少个是可消除的。

输入格式

输入的第一行包含一个正整数 \(n\),表示字符串的长度。

输入的第二行包含一个长度为 \(n\) 且仅由小写字母构成的的字符串,表示题目中询问的字符串。

输出格式

输出一行包含一个整数,表示题目询问的答案。

样例 #1

样例输入 #1
8
accabccb
样例输出 #1
5

提示

【样例 1 解释】

一共有 \(5\) 个可消除的连续子串,分别是 ccaccaccbccbaccabccb

【样例 2】

见选手目录下的 game/game2.ingame/game2.ans

【样例 3】

见选手目录下的 game/game3.ingame/game3.ans

【样例 4】

见选手目录下的 game/game4.ingame/game4.ans

【数据范围】

对于所有测试数据有:\(1 \le n \le 2 \times 10^6\),且询问的字符串仅由小写字母构成。

测试点 \(n\leq\) 特殊性质
\(1\sim 5\) \(10\)
\(6\sim 7\) \(800\)
\(8\sim 10\) \(8000\)
\(11\sim 12\) \(2\times 10^5\) A
\(13\sim 14\) \(2\times 10^5\) B
\(15\sim 17\) \(2\times 10^5\)
\(18\sim 20\) \(2\times 10^6\)

特殊性质 A:字符串中的每个字符独立等概率地从字符集中选择。

特殊性质 B:字符串仅由 ab 构成。


Comments

There are no comments at the moment.