#ATarc181b. [ARC181B] Annoying String Problem

[ARC181B] Annoying String Problem

题目描述

给定由小写英文字母组成的字符串 S,TS,T,以及由 01 组成的字符串 XX,定义函数 f(S,T,X)f(S,T,X) 如下:

  • 从空字符串开始,依次对于 i=1,2,,Xi=1,2,\dots,|X|,如果 XX 的第 ii 个字符为 0,则将 SS 拼接到末尾;如果为 1,则将 TT 拼接到末尾。最终得到的字符串即为 f(S,T,X)f(S,T,X)

现在给定小写英文字母字符串 SS,以及由 01 组成的字符串 X,YX,Y

请判断是否存在一个小写英文字母字符串 TT(可以为空),使得 f(S,T,X)=f(S,T,Y)f(S,T,X)=f(S,T,Y) 成立。

tt 组测试数据,请分别作答。

输入格式

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

tt
case1\mathrm{case}_1
\vdots
caset\mathrm{case}_t

每组数据格式如下:

S X YS\ X\ Y

输出格式

输出 tt 行。第 ii 行输出第 ii 个测试用例的答案。如果存在满足条件的 TT,输出 Yes,否则输出 No

样例 1

输入

3
araara
01
111
araaaa
100100
0010111
abacabac
0
1111

输出

Yes
No
No

样例 2

输入

2
empty
10101
00
empty
11111
111

输出

Yes
Yes

说明/提示

限制条件

  • 1t5×1051 \leq t \leq 5 \times 10^5
  • 1S5×1051 \leq |S| \leq 5 \times 10^5
  • 1X,Y5×1051 \leq |X|,|Y| \leq 5 \times 10^5
  • SS 为小写英文字母字符串
  • X,YX,Y 为仅由 01 组成的字符串
  • 所有测试用例中 S|S| 的总和不超过 5×1055 \times 10^5
  • 所有测试用例中 X|X| 的总和不超过 5×1055 \times 10^5
  • 所有测试用例中 Y|Y| 的总和不超过 5×1055 \times 10^5

样例解释 1

以下用 ++ 表示字符串拼接。对于第 1 个测试用例,取 T=T=ara,则 f(S,T,X)=S+T=f(S,T,X)=S+T=araaraaraf(S,T,Y)=T+T+T=f(S,T,Y)=T+T+T=araaraara,因此 f(S,T,X)=f(S,T,Y)f(S,T,X)=f(S,T,Y) 成立。对于第 2、3 个测试用例,不存在满足条件的 TT

样例解释 2

TT 可以为空字符串。

由 ChatGPT 4.1 翻译