AT_joig2025_c 修学旅行 (School Trip)
题目描述
JOIG 高中有 $3^N$ 名学生,每位学生都被分配了 $1$ 到 $3^N$ 的编号。
学校计划修学旅行的目的地有两个方案:提案 A(去阿拉斯加)和提案 B(去玻利维亚)。决定去哪一个方案的方法如下:
- 用一个长度为 $3^N$ 的字符串 $S$ 标记每位学生的意愿。第 $i$ 位学生若支持提案 A,则 $S$ 的第 $i$ 个字符为 `A`,若支持提案 B,则为 `B`。
- 进行 $N$ 次如下操作:
- (操作):令当前 $S$ 的长度为 $X$,构造长度为 $\frac{X}{3}$ 的新字符串 $S'$。对于 $j$($1 \leq j \leq \frac{X}{3}$),$S'$ 的第 $j$ 个字符取 $S$ 的第 $3j-2$、$3j-1$、$3j$ 这三位中出现较多的那个字符。然后用 $S'$ 替换 $S$。
- $N$ 次操作后,$S$ 会只剩下一个字符,该字符为 `A` 则采用提案 A,为 `B` 则采用提案 B 作为旅行目的地。
最初,每位学生的意愿由一个长度为 $3^N$ 的字符串 $T$ 给出,$T$ 的第 $i$ 位若为 `A` 则表示第 $i$ 位学生希望 A,若为 `B` 则希望 B。接下来会有 $Q$ 次事件编号 $k$($1 \leq k \leq Q$),每次事件会改变编号为 $p_k$ 的学生的意愿:如果该学生原本希望 A,则更改为 B;若原本希望 B,则更改为 A(注意,改变是持续生效的,会影响后续事件)。
请你编写程序,对于每一次事件后的学生意愿,按照上述方式决定旅行目的地,并输出对应选择的方案(`A` 或 `B`)。
输入格式
输入格式如下:
> $N$ $Q$
> $T$
> $p_1$
> $p_2$
> $\vdots$
> $p_Q$
输出格式
输出共 $Q$ 行。第 $k$ 行输出第 $k$ 次事件后,根据当前学生意愿决定出的最终方案,若为 A 则输出 `A`,为 B 则输出 `B`。
说明/提示
### 小提示
1. ($8$ 分) $N = 1$。
2. ($17$ 分) $Q \leq 10$。
3. ($22$ 分) $p_k \leq 5$($1 \leq k \leq Q$)。
4. ($28$ 分) $T$ 中所有字符均为 `A`,且 $p_k \neq p_l$($1 \leq k < l \leq Q$)。
5. ($25$ 分) 无其他限制。
### 样例解释 1
第一次事件后,根据所有学生的当前意愿判断,最终方案为 B,详细如下:
- 最初字符串 $S$ 为 `ABBBBAABB`。
- 第一次操作后,$S$ 变为 `BBB`。
- 第二次操作后,$S$ 变为 `B`。
- 因此,选择方案 B。
第二次事件后,所有学生的当前意愿对应最终方案也为 B,过程如下:
- 最初字符串 $S$ 为 `ABBBBAAAB`。
- 第一次操作后,$S$ 变为 `BBA`。
- 第二次操作后,$S$ 变为 `B`。
- 因此,选择方案 B。
第三次事件后,根据所有学生的当前意愿判断,最终方案为 A,过程如下:
- 最初字符串 $S$ 为 `ABBABAAAB`。
- 第一次操作后,$S$ 变为 `BAA`。
- 第二次操作后,$S$ 变为 `A`。
- 因此,选择方案 A。
此组数据符合第 $2,5$ 小题的限制。
### 样例解释 2
此组数据符合第 $2,4,5$ 小题的限制。
### 样例解释 3
此组数据符合第 $1,2,3,5$ 小题的限制。
### 样例解释 4
此组数据符合第 $2,5$ 小题的限制。
### 数据范围与约定
- $1 \leq N \leq 12$。
- $1 \leq Q \leq 200\,000$。
- $T$ 为长度为 $3^N$ 的字符串。
- $T$ 的各字符均为 `A` 或 `B`。
- $1 \leq p_k \leq 3^N$($1 \leq k \leq Q$)。
- $N,Q,p_k$ 均为整数。
由 ChatGPT 5 翻译