AT_arc166_a [ARC166A] Replace C or Swap AB

题目描述

给定由 `A`、`B`、`C` 组成的长度为 $N$ 的字符串 $X$ 和 $Y$。 你可以对 $X$ 进行以下三种操作(每种操作可以执行任意次,包括 $0$ 次),请判断是否可以将 $X$ 变为 $Y$。 - **操作 (1)**:选择 $X$ 中的一个 `C` 字符,将其替换为 `A`。 - **操作 (2)**:选择 $X$ 中的一个 `C` 字符,将其替换为 `B`。 - **操作 (3)**:选择 $X$ 中的一个子串 `AB`,将其替换为 `BA`。更形式化地说,选择 $X$ 中第 $i$ 个字符为 `A` 且第 $i+1$ 个字符为 `B$ 的 $i$,将第 $i$ 个字符替换为 `B`,第 $i+1$ 个字符替换为 `A`。 给定 $T$ 组测试数据,请分别回答每组数据是否可以将 $X$ 变为 $Y$。

输入格式

输入以如下格式从标准输入读入。 > $T$ > $\text{case}_1$ > $\vdots$ > $\text{case}_T$ 每组测试数据格式如下: > $N\ X\ Y$

输出格式

请输出 $T$ 行。第 $i$ 行输出第 $i$ 组测试数据的答案,如果可以将 $X$ 变为 $Y$,输出 `Yes`,否则输出 `No`。

说明/提示

### 限制条件 - $1\leq T\leq 2\times 10^5$ - $1\leq N\leq 2\times 10^5$ - $X$、$Y$ 均为由 `A`、`B`、`C` 组成的长度为 $N$ 的字符串。 - 所有测试数据中 $N$ 的总和不超过 $2\times 10^5$。 ### 样例解释 1 - 第 $1$ 组测试数据:可以通过 $0$ 次操作将 $X$ 变为 $Y$。 - 第 $2$ 组测试数据:可以通过 $1$ 次操作 (2) 将 $X$ 变为 $Y$。 - 第 $4$ 组测试数据:可以通过 $1$ 次操作 (3) 将 $X$ 变为 $Y$。 - 第 $6$ 组测试数据:例如依次对合适位置执行操作 (1)、操作 (3)、操作 (1),$X$ 会变为 `CCB` → `CAB` → `CBA` → `ABA`,最终与 $Y$ 一致。 由 ChatGPT 4.1 翻译