#P12550. [UOI 2025] Reversal ABC

[UOI 2025] Reversal ABC

Description

给定一个由字符 A\texttt{A}B\texttt{B}C\texttt{C} 组成的字符串 ss

每次操作中,你可以选择字符串中两个相邻的元素 sisi+1s_is_{i+1},且它们的顺序为以下之一:AB\texttt{AB}BC\texttt{BC}CA\texttt{CA},然后交换它们的位置。

求可以对字符串 ss 进行的最大连续操作次数。

本题每个测试包含多组输入数据,你需要分别独立处理每组数据。

Input Format

第一行包含一个整数 TT (1T105)(1\le T\le 10^5) —— 输入数据的组数。接下来是各组数据的描述。

每组数据的第一行包含一个整数 nn (1n106)(1 \le n \le 10^6) —— 字符串 ss 的长度。

每组数据的第二行包含一个长度为 nn 的字符串 ss,由字符 A\texttt{A}B\texttt{B}C\texttt{C} 组成。

保证单个测试中所有数据的 nn 之和不超过 10610^6

Output Format

对于每组数据,输出一行一个整数 —— 可以对字符串 ss 进行的最大连续操作次数。

2
5
ABCCA
19
CCAABBBABBAAABBCCAA
3
28

Hint

在第一个样例的第一组数据中,字符串 ABCCA\texttt{ABCCA} 最多可以进行 33 次连续操作。其中一种可能的操作序列是:$[\texttt{ABCCA} \rightarrow \texttt{BACCA}, \texttt{BACCA} \rightarrow \texttt{BACAC}, \texttt{BACAC} \rightarrow \texttt{BAACC}]$。

评分标准

KK 为单个测试中所有数据的 nn 之和。

  • 22 分):答案为 0011
  • 33 分):n3n \le 3
  • 55 分):对于所有 1in1 \le i \le nsiCs_i \ne \texttt{C}
  • 55 分):ss 的形式为 $\texttt{AA}\ldots \texttt{AABB}\ldots \texttt{BBCC}\ldots \texttt{CC}$(即 $x \cdot \texttt{A} + y \cdot \texttt{B} + z \cdot \texttt{C}$,其中 xxyyzz 为正整数);
  • 99 分):对于所有 1i<n1 \le i < nsisi+1CAs_is_{i+1} \ne \texttt{CA}
  • 1010 分):T=1T = 1n12n \le 12
  • 88 分):n12n \le 12
  • 2828 分):K2000K \le 2000
  • 3030 分):无额外限制。

翻译由 DeepSeek V3 完成