310883: CF1904D2. Set To Max (Hard Version)

Memory Limit:256 MB Time Limit:4 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

D2. Set To Max (Hard Version)time limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

This is the hard version of the problem. The only differences between the two versions of this problem are the constraints on $n$ and the time limit. You can make hacks only if all versions of the problem are solved.

You are given two arrays $a$ and $b$ of length $n$.

You can perform the following operation some (possibly zero) times:

  1. choose $l$ and $r$ such that $1 \leq l \leq r \leq n$.
  2. let $x=\max(a_l,a_{l+1},\ldots,a_r)$.
  3. for all $l \leq i \leq r$, set $a_i := x$.

Determine if you can make array $a$ equal to array $b$.

Input

Each test contains multiple test cases. The first line contains an integer $t$ ($1 \leq t \leq 10^4$) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the length of the arrays.

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le n$) — the elements of array $a$.

The third line contains $n$ integers $b_1, b_2, \ldots, b_n$ ($1 \le b_i \le n$) — the elements of array $b$.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.

Output

For each test case, output "YES" (without quotes) if you can make $a$ into $b$ using any number of operations, and "NO" (without quotes) otherwise.

You can output "YES" and "NO" in any case (for example, strings "yES", "yes" and "Yes" will be recognized as a positive response).

ExampleInput
5
5
1 2 3 2 4
1 3 3 2 4
5
3 4 2 2 4
3 4 3 4 4
5
3 2 1 1 1
3 3 3 2 2
2
1 1
1 2
3
1 1 2
2 1 2
Output
YES
NO
YES
NO
NO
Note

In the first test case, we can achieve array $b$ by applying a single operation: $(l,r)=(2,3)$.

In the second test case, it can be shown we cannot achieve array $b$ in any amount of operations.

In the third test case, we can achieve array $b$ by applying two operations: $(l,r)=(2,5)$. followed by $(l,r)=(1,3)$.

In the fourth and fifth test cases, it can be shown we cannot achieve array $b$ in any amount of operations.

Output

题目大意:
这是一个难题的较难版本。这个问题的两个版本之间的唯一区别是对n的限制和时限。只有当问题的所有版本都被解决时,你才能进行黑客攻击。

输入输出数据格式:
输入:
输入的第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。测试用例的描述如下。

每个测试用例的第一行包含一个单个整数n(1≤n≤2×10^5)——数组的长度。

第二行包含n个整数a1,a2,…,an(1≤ai≤n)——数组a的元素。

第三行包含n个整数b1,b2,…,bn(1≤bi≤n)——数组b的元素。

保证所有测试用例的n之和不超过2×10^5。

输出:
对于每个测试用例,如果可以使用任意数量的操作将a变为b,则输出“YES”(不带引号),否则输出“NO”(不带引号)。

示例:
输入:
5
5
1 2 3 2 4
1 3 3 2 4
5
3 4 2 2 4
3 4 3 4 4
5
3 2 1 1 1
3 3 3 2 2
2
1 1
1 2
3
1 1 2
2 1 2

输出:
YES
NO
YES
NO
NO题目大意: 这是一个难题的较难版本。这个问题的两个版本之间的唯一区别是对n的限制和时限。只有当问题的所有版本都被解决时,你才能进行黑客攻击。 输入输出数据格式: 输入: 输入的第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。测试用例的描述如下。 每个测试用例的第一行包含一个单个整数n(1≤n≤2×10^5)——数组的长度。 第二行包含n个整数a1,a2,…,an(1≤ai≤n)——数组a的元素。 第三行包含n个整数b1,b2,…,bn(1≤bi≤n)——数组b的元素。 保证所有测试用例的n之和不超过2×10^5。 输出: 对于每个测试用例,如果可以使用任意数量的操作将a变为b,则输出“YES”(不带引号),否则输出“NO”(不带引号)。 示例: 输入: 5 5 1 2 3 2 4 1 3 3 2 4 5 3 4 2 2 4 3 4 3 4 4 5 3 2 1 1 1 3 3 3 2 2 2 1 1 1 2 3 1 1 2 2 1 2 输出: YES NO YES NO NO

加入题单

上一题 下一题 算法标签: