测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A16877. An Alternative Way

编程题 入门

题目描述

你有两个长度均为 $n$ 的数组 $a$ 和 $b$。你可以对数组 $a$ 执行以下操作任意次(包括零次):

1. 选择两个下标 $l$ 和 $r$,满足 $1 \le l \le r \le n$;
2. 对每个下标 $i$(从 $l$ 到 $r$,含端点):
* 若 $i - l$ 为奇数,则令 $a_i := a_i - 1$;
* 若 $i - l$ 为偶数,则令 $a_i := a_i + 1$。

判断是否可以通过执行若干次该操作,使数组 $a$ 变为数组 $b$。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。随后是每个测试用例的描述。

每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2\cdot10^5$)——数组 $a$ 和 $b$ 的长度。

每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)——数组 $a$ 的元素。

每个测试用例的第三行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($1 \le b_i \le 10^9$)——数组 $b$ 的元素。

保证所有测试用例中 $n$ 的总和不超过 $2\cdot10^5$。

输出格式

对于每个测试用例,如果可以使数组 $a$ 等于数组 $b$,则输出 "YES";否则输出 "NO"。

你可以以任意大小写形式输出 "YES" 和 "NO"(例如,字符串 "yEs"、"yes" 和 "Yes" 均被视为肯定回答)。

输入输出样例

输入 #1
7
3
1 2 3
1 2 3
4
1 4 5 2
1 5 4 3
1
9
8
6
6 7 6 7 6 7
7 6 7 6 7 6
9
9 8 7 6 5 4 3 2 1
9 9 8 2 4 4 3 5 3
3
1 1 2
2 1 1
2
1 2
1 1
输出 #1
YES
YES
NO
YES
NO
YES
NO

说明/提示

对于第一个测试用例,数组 $a$ 和 $b$ 已经相等。

对于第二个测试用例,我们选择 $l = 2$ 和 $r = 4$。此时,我们按如下方式更新数组 $a$:

* 当 $i = 2$ 时,有 $i - l = 2 - 2 = 0$,为偶数,因此令 $a_2 := a_2 + 1 = 4 + 1 = 5$。
* 当 $i = 3$ 时,有 $i - l = 3 - 2 = 1$,为奇数,因此令 $a_3 := a_3 - 1 = 5 - 1 = 4$。
* 当 $i = 4$ 时,有 $i - l = 4 - 2 = 2$,为偶数,因此令 $a_4 := a_4 + 1 = 2 + 1 = 3$。

最终得到数组 $a = [1, 5, 4, 3]$,数组 $b = [1, 5, 4, 3]$。

对于第三个测试用例,可以证明无法使数组 $a$ 等于数组 $b$。
上一题 去做题 下一题