Swap If Equal Sum
时间限制:2s
空间限制:1024MB
题目描述
给定两个只包含 0 和 1 的长度为 N 的整数序列 A=(A1,A2,…,AN) 与 B=(B1,B2,…,BN)。用 A[i,j] 表示 A 从第 i 项到第 j 项组成的连续子序列。
你可以对 A 进行任意次以下操作:
- 选择整数 a,b,c,d,满足 1≤a≤b<c≤d≤N,且i=a∑bAi=i=c∑dAi;
- 交换连续子序列 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。
每组测试数据包含三行:第一行输入整数 N;第二行输入 N 个整数 A1,A2,…,AN;第三行输入 N 个整数 B1,B2,…,BN。
输出格式
对每组测试数据输出一行。如果可以使 A 变为 B,输出 Yes;否则输出 No。
样例输入 1
3
6
1 1 1 0 0 1
0 1 1 0 1 1
2
0 0
1 0
3
1 1 1
1 1 1
样例输出 1
Yes
No
Yes
数据范围
对于所有数据,1≤T≤105,2≤N≤2×105,0≤Ai,Bi≤1,且单个输入文件中所有测试数据的 N 之和不超过 2×105。
| 子任务编号 |
分值 |
特殊限制 |
| 1 |
10 |
每组测试数据均满足 A=B |
| 2 |
每组测试数据均满足 ∑Ai=∑Bi |
| 3 |
20 |
每组测试数据均满足 N≤10 |
| 4 |
30 |
每组测试数据均满足 ∑Ai=∑Bi≥2 |
| 5 |
无特殊限制 |