寻路是寻找两点之间路径的任务。它经常出现在许多问题中。例如,在 GPS 导航软件中,驾驶员可以查询建议路线;在机器人运动规划中,它需要找到一条有效的移动序列来完成某些任务;或者在简单的迷宫求解器中,它需要找到从一点到另一点的有效路径。本题与迷宫求解相关。
本题考虑的迷宫是一个 $N \times N$ 的整数矩阵 $A$。每个单元格的值由给定的两个包含 $N$ 个整数的数组 $R$ 和 $C$ 生成。具体来说,第 $i$ 行第 $j$ 列的单元格 $(i, j)$ 的值为 $R_i + C_j$。注意,本题中所有索引均从 $1$ 到 $N$。
迷宫中的路径定义为单元格序列 $(r_1, c_1), (r_2, c_2), \dots, (r_k, c_k)$,满足对于所有 $1 \le i < k$,都有 $|r_i - r_{i+1}| + |c_i - c_{i+1}| = 1$。换句话说,每个相邻单元格仅相差 $1$ 行或仅相差 $1$ 列。迷宫中的偶数路径定义为路径中所有单元格都包含偶数的路径。
给定一个元组 $r_a, c_a, r_b, c_b$ 作为查询,你的任务是确定是否存在从单元格 $(r_a, c_a)$ 到单元格 $(r_b, c_b)$ 的偶数路径。为简化问题,保证单元格 $(r_a, c_a)$ 和 $(r_b, c_b)$ 都包含偶数。
例如,设 $N = 5$,$R = \{6, 2, 7, 8, 3\}$,$C = \{3, 4, 8, 5, 1\}$。下图描绘了由给定数组 $R$ 和 $C$ 生成的 $5 \times 5$ 矩阵 $A$。
让我们考虑几个查询: $2, 2, 1, 3$:存在从单元格 $(2, 2)$ 到单元格 $(1, 3)$ 的偶数路径,例如 $(2, 2), (2, 3), (1, 3)$。当然,$(2, 2), (1, 2), (1, 3)$ 也是一条有效的偶数路径。 $4, 2, 4, 3$:存在从单元格 $(4, 2)$ 到单元格 $(4, 3)$ 的偶数路径,即 $(4, 2), (4, 3)$。 * $5, 1, 3, 4$:不存在从单元格 $(5, 1)$ 到单元格 $(3, 4)$ 的偶数路径。观察到 $(5, 1)$ 仅有的两个相邻单元格是 $(5, 2)$ 和 $(4, 1)$,它们都包含奇数(分别为 $7$ 和 $11$),因此,不可能存在任何从单元格 $(5, 1)$ 出发的偶数路径。
输入格式
输入的第一行包含两个整数:$N$ 和 $Q$ ($2 \le N \le 100\,000$; $1 \le Q \le 100\,000$),分别表示迷宫的大小和查询的数量。下一行包含 $N$ 个整数:$R_i$ ($0 \le R_i \le 10^6$),表示数组 $R$。下一行包含 $N$ 个整数:$C_i$ ($0 \le C_i \le 10^6$),表示数组 $C$。接下来的 $Q$ 行,每行包含四个整数:$r_a, c_a, r_b, c_b$ ($1 \le r_a, c_a, r_b, c_b \le N$),表示一个查询 $r_a, c_a, r_b, c_b$。保证 $(r_a, c_a)$ 和 $(r_b, c_b)$ 是迷宫中两个不同的单元格,且它们都包含偶数。
输出格式
对于每个查询,按照输入顺序,在一行中输出字符串 “YES”(不含引号)或 “NO”(不含引号),表示是否存在从单元格 $(r_a, c_a)$ 到单元格 $(r_b, c_b)$ 的偶数路径。
样例
样例输入 1
5 3 6 2 7 8 3 3 4 8 5 1 2 2 1 3 4 2 4 3 5 1 3 4
样例输出 1
YES YES NO
说明 1
这是题目描述中的示例。
样例输入 2
3 2 30 40 49 15 20 25 2 2 3 3 1 2 2 2
样例输出 2
NO YES