#ATarc166a. [ARC166A] Replace C or Swap AB

[ARC166A] Replace C or Swap AB

题目描述

给定由 ABC 组成的长度为 NN 的字符串 XXYY

你可以对 XX 进行以下三种操作(每种操作可以执行任意次,包括 00 次),请判断是否可以将 XX 变为 YY

  • 操作 (1):选择 XX 中的一个 C 字符,将其替换为 A
  • 操作 (2):选择 XX 中的一个 C 字符,将其替换为 B
  • 操作 (3):选择 XX 中的一个子串 AB,将其替换为 BA。更形式化地说,选择 XX 中第 ii 个字符为 A 且第 i+1i+1 个字符为 B$ 的 $i$,将第 $i$ 个字符替换为 B,第 $i+1$ 个字符替换为 A`。

给定 TT 组测试数据,请分别回答每组数据是否可以将 XX 变为 YY

输入格式

输入以如下格式从标准输入读入。

TT
case1\text{case}_1
\vdots
caseT\text{case}_T

每组测试数据格式如下:

N X YN\ X\ Y

输出格式

请输出 TT 行。第 ii 行输出第 ii 组测试数据的答案,如果可以将 XX 变为 YY,输出 Yes,否则输出 No

样例 1

输入

6
3 ABC ABC
1 C B
1 B C
2 AB BA
2 BA AB
3 CCB ABA

输出

Yes
Yes
No
Yes
No
Yes

样例 2

输入

7
5 ABABA BABAB
5 ABCBC BBABA
5 CCCCC CBABC
5 BBAAA AAABB
5 AAABB BBAAA
5 ACACB BAACB
5 ACACB BBACA

输出

No
Yes
Yes
No
Yes
Yes
No

说明/提示

限制条件

  • 1T2×1051\leq T\leq 2\times 10^5
  • 1N2×1051\leq N\leq 2\times 10^5
  • XXYY 均为由 ABC 组成的长度为 NN 的字符串。
  • 所有测试数据中 NN 的总和不超过 2×1052\times 10^5

样例解释 1

  • 11 组测试数据:可以通过 00 次操作将 XX 变为 YY
  • 22 组测试数据:可以通过 11 次操作 (2) 将 XX 变为 YY
  • 44 组测试数据:可以通过 11 次操作 (3) 将 XX 变为 YY
  • 66 组测试数据:例如依次对合适位置执行操作 (1)、操作 (3)、操作 (1),XX 会变为 CCBCABCBAABA,最终与 YY 一致。

由 ChatGPT 4.1 翻译