#286. 是不是酷的数列(cool)

是不是酷的数列(cool)

题目描述

  • 文件输入:cool.in
  • 文件输出:cool.out

给定一个大小为 nn 的数组 aa,以及一个参数 kk,如果满足以下条件,则称数组 bb 是 酷的:

  • 对于每个从 kk 到 nn 的 ii,数组 [ai−k+1,ai−k+2,…,ai][a_{i-k+1}, a_{i-k+2}, \ldots, a_i] 是 [bi−k+1,bi−k+2,…,bi][b_{i-k+1}, b_{i-k+2}, \ldots, b_i] 的一个重排列。

给定两个大小为 nn 的数组 aa 和 bb,以及一个整数 kk。数组 aa 仅包含从 11 到 nn 的整数。数组 bb 仅包含从 11 到 nn 的整数,以及 −1-1。

判断是否可以将 bb 中的所有 −1-1 替换为 11 到 nn 之间的整数,使得 bb 关于 kk 是 酷的。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt。接下来是测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 kk。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

每个测试用例的第三行包含 nn 个整数 b1,b2,…,bnb_1,b_2,\ldots,b_n。

输出格式

对于每个测试用例,如果可能,输出 YES,否则输出 NO。

样例

5
5 5
1 2 3 4 5
3 1 5 2 4
5 2
1 2 1 2 1
2 -1 -1 -1 -1
6 1
5 6 2 2 4 3
5 -1 -1 2 -1 3
2 1
1 2
2 -1
6 4
1 2 3 4 1 2
2 -1 3 -1 4 -1
YES
YES
YES
NO
NO

说明/提示

样例解释

在第一个测试用例中,k=5k=5。唯一大小为 55 的子数组是 [1,5][1,5]。我们可以看到 bb 是 aa 的一个重排列,所以答案是 YES。

在第二个测试用例中,我们可以令 b=[2,1,2,1,2]b=[2,1,2,1,2]。我们可以看到 aa 和 bb 中每个大小为 22 的窗口要么是 [1,2][1,2] 要么是 [2,1][2,1],它们互为重排列,所以答案是 YES。

在第四个测试用例中,因为 a1≠b1a_1 \neq b_1 且 k=1k=1,所以答案是 NO。

数据规模与约定

对于所有的数据:1≤t≤1041 \le t \le 10^4,1≤k≤n≤2⋅1051 \leq k \leq n \leq 2\cdot 10^5,1≤ai≤n1 \leq a_i \leq n,1≤bi≤n1 \leq b_i \leq n 或 bi=−1b_i=-1,且 所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

子任务编号 分值 数据范围 特殊性质
11 1010 t≤10,n≤10t \le 10, n \le 10 A
22 t≤10,n≤50t \le 10, n \le 50 无
33 t≤100,n≤100t \le 100, n \le 100
44 2020 和所有数据的数据范围一样 A
55 5050 无

对于子任务 i(i>1)i(i \gt 1),你需要答对所有编号 <i\lt i 的子任务才能获得子任务 ii 的得分。

测试样例

一共 55 组测试样例。

cooli.incool\texttt{i}.in 和 cooli.anscool\texttt{i}.ans 对应子任务 ii。

点击下载 测试样例