AT_agc059_a [AGC059A] My Last ABC Problem

题目描述

考虑一个只由字符 `A`、`B`、`C` 组成的字符串 $t$。对于该字符串,可以进行如下操作: - 任意选择一个子串 $t[l:r]$,以及字符 $($`A`$,$`B`$,$`C`$)$ 的任意一种排列 $(X, Y, Z)$。这里,$t[l:r]$ 表示从第 $l$ 个字符到第 $r$ 个字符组成的子串,$l$ 和 $r$ 可以任意选择。然后,将 $t[l:r]$ 中的每个 `A` 替换为 $X$,每个 `B` 替换为 $Y$,每个 `C` 替换为 $Z$。 例如,对于字符串 $t = $ `ACBAAC`,可以选择子串 $t[3:6]$ 和排列 $(X, Y, Z) = ($`C`$,$`B`$,$`A`$)$。执行该操作后,字符串变为 `ACBCCA`。 阿丽娜喜欢所有字符都相同的字符串。她将字符串 $t$ 的“美丽度”定义为:将其所有字符变为相同所需的最少操作次数。 给定一个长度为 $N$、只包含字符 `A`、`B`、`C` 的字符串 $S$。请回答 $Q$ 个询问。第 $i$ 个询问如下: - 给定整数 $L_i$ 和 $R_i$,请你求出子串 $t = S[L_i:R_i]$ 的美丽度。

输入格式

输入从标准输入按以下格式给出。 > $N$ $Q$ $S$ $L_1$ $R_1$ $L_2$ $R_2$ $\vdots$ $L_Q$ $R_Q$

输出格式

输出共 $Q$ 行。第 $i$ 行输出第 $i$ 个询问的答案。

说明/提示

### 限制条件 - $1 \leq N \leq 10^5$ - $S$ 只包含字符 `A`、`B`、`C`。 - $1 \leq Q \leq 10^5$ - $1 \leq L_i \leq R_i \leq N$ - 输入中的所有数均为整数。 ### 样例解释 1 对于第一个询问,字符串为 $t = $ `CCC`,已经全部相同,答案为 $0$。 对于第二个询问,字符串为 $t = $ `BC`,可以选择子串 $t[2:2]$ 和排列 $(X, Y, Z) = ($`A`$,$`C`$,$`B`$)$,一次操作即可变为 `BB`。 对于第三个询问,字符串为 $t = $ `ABC`,可以选择子串 $t[2:3]$ 和排列 $(X, Y, Z) = ($`C`$,$`A`$,$`B`$)$,一次操作可变为 `AAB`,再选择子串 $t[1:2]$ 和排列 $(X, Y, Z) = ($`B`$,$`A`$,$`C`$)$,第二次操作可变为 `BBB`。 由 ChatGPT 4.1 翻译