AT_arc203_b [ARC203B] Swap If Equal Sum
题目描述
给定两个只包含 $0$ 和 $1$ 的长度为 $N$ 的整数序列 $A=(A_1,A_2,\dots,A_N)$ 和 $B=(B_1,B_2,\dots,B_N)$。我们用 $A[i,j]$ 表示 $A$ 的第 $i$ 个到第 $j$ 个元素组成的连续子序列。若 $i > j$,则 $A[i,j]$ 表示长度为 $0$ 的序列。你可以对 $A$ 进行如下操作任意次:
- 选择满足以下两个条件的 $4$ 个整数 $a,b,c,d$:
- $1 \leq a \leq b < c \leq d \leq N$
- $\sum_{i=a}^{b}{A_i} = \sum_{i=c}^{d}{A_i}$
- 将 $A[a,b]$ 和 $A[c,d]$ 交换。更严格地说,将 $A$ 替换为 $A[1,a-1]$、$A[c,d]$、$A[b+1,c-1]$、$A[a,b]$、$A[d+1,N]$ 依次连接而成的新序列。
请判断是否可以通过若干次上述操作,将 $A$ 变为 $B$。
对于每组输入文件,需要解答 $T$ 个测试用例。
输入格式
输入通过标准输入给出,格式如下:
> $T$
> $case_1$
> $case_2$
> $\vdots$
> $case_T$
每个测试用例的格式如下:
> $N$ $A_1$ $A_2$ $\dots$ $A_N$ $B_1$ $B_2$ $\dots$ $B_N$
输出格式
请输出共 $T$ 行答案。第 $t$ 行输出第 $t$ 个测试用例的答案。如果可以将 $A$ 变为 $B$,输出 `Yes`,否则输出 `No`。
说明/提示
### 数据范围
- $1 \leq T \leq 10^5$
- $2 \leq N \leq 2 \times 10^5$
- $0 \leq A_i \leq 1$
- $0 \leq B_i \leq 1$
- 所有测试用例中 $N$ 的总和不超过 $2\times 10^5$
- 输入的所有值均为整数
### 样例解释 1
第 $1$ 个测试用例中,$A$ 初始为 $(1,1,1,0,0,1)$。选择 $(a,b,c,d)=(1,2,3,6)$ 进行操作后,$A$ 变为 $(1,0,0,1,1,1)$。接着选择 $(a,b,c,d)=(1,2,3,4)$ 进行操作后,$A$ 变为 $(0,1,1,0,1,1)$,与 $B$ 相同。
第 $2$ 个测试用例中,无法将 $A$ 变为 $B$。
第 $3$ 个测试用例中,$A$ 初始即与 $B$ 相同。
由 ChatGPT 4.1 翻译