/ WHOJ / 题库 /

数组变换

数组变换

题目描述

有两个长度为 \(n\) 的整数数组 \(A\) 和 \(B\)。数组 \(A\) 的值只会是 \(1, 0\) 或 \(-1\)。

你可以多次执行以下操作:

\(1.\) 选择任意一个有序对 \((i,j)\),使得 \(1\le i \lt j \le n\)。 你可以多次选择同一对有序对 \((i,j)\)。

\(2.\) 将 \(A[i]\) 加到 \(A[j]\) 中,即数组 \(A\) 的第 \(j\) 个元素等于 \(A[i]+A[j]\)。

例如,如果给定数组 \(A\) 为 \([1,−1,0]\),你可以通过一次操作将其变换为\([1,-1,-1]\)、 \([1,0,0]\)和\([1,-1,1]\)。

现在的问题是,给定数组 \(A\) 和 \(B\),判断是否可以通过一定数量(\(0\)个或多个)的这些操作应用于数组 \(A\),使其等于数组 \(B\)。

格式

输入格式

包含多组测试数据,第一行一个整数 \(T\),表示测试数据的组数。每组测试数据包含:

第一行包含一个整数 \(n\),表示数组的长度。

第二行包含 \(n\) 个整数\(A[1], A[2], \cdots, A[n](-1\le A[i] \le 1)\)描述 \(A\) 数组。

第三行包含 \(n\) 个整数\(B[1], B[2], \cdots, B[n](-10^9 \le B[i] \le 10^9)\)描述数组 \(B\)。

输出格式

对于每组数据输出一行,如果可以通过执行题目描述中的操作使数组\(A\)和\(B\)相等,则输出\(\text{YES}\),否则输出\(\text{NO}\)。

样例1

样例输入1

2
3
1 -1 0
1 1 -2
3
0 1 1
0 2 2

样例输出1

YES
NO

样例解释

第一组数据中,选择有序数对 \((2,3)\) 执行 \(2\) 次,选择有序数对 \((1,2)\) 执行 \(2\) 次,即可将数组 \(A\) 变成与数组 \(B\) 相同。

限制

\(100\%\)的数据: \(1 \le T \le 10000,1 \le n \le 10^5\),确保每个测试点的多组数据中的 \(n\) 之和不超过 \(10^5\)。

信息

ID
1418
难度
4
分类
(无)
标签
递交数
1
已通过
1
通过率
100%
上传者

相关

在下列训练计划中:

YGP模拟赛