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 翻译