A13016 | Even Path
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Pathfinding is a task of finding a route between two points. It often appears in many problems. For example, in a GPS navigation software where a driver can query for a suggested route, or in a robot motion planning where it should find a valid sequence of movements to do some tasks, or in a simple maze solver where it should find a valid path from one point to another point. This problem is related to solving a maze.
The maze considered in this problem is in the form of a matrix of integers $A$ of $N \times N$ . The value of each cell is generated from a given array $R$ and $C$ of $N$ integers each. Specifically, the value on the $i^{th}$ row and $j^{th}$ column, cell $(i,j)$ , is equal to $R_i + C_j$ . Note that all indexes in this problem are from $1$ to $N$ .
A path in this maze is defined as a sequence of cells $(r_1,c_1), (r_2,c_2), \dots, (r_k,c_k)$ such that $|r_i - r_{i+1}| + |c_i - c_{i+1}| = 1$ for all $1 \le i < k$ . In other words, each adjacent cell differs only by $1$ row or only by $1$ column. An even path in this maze is defined as a path in which all the cells in the path contain only even numbers.
Given a tuple $\langle r_a,c_a,r_b,c_b \rangle$ as a query, your task is to determine whether there exists an even path from cell $(r_a,c_a)$ to cell $(r_b,c_b)$ . To simplify the problem, it is guaranteed that both cell $(r_a,c_a)$ and cell $(r_b,c_b)$ contain even numbers.
For example, let $N = 5$ , $R = \{6, 2, 7, 8, 3\}$ , and $C = \{3, 4, 8, 5, 1\}$ . The following figure depicts the matrix $A$ of $5 \times 5$ which is generated from the given array $R$ and $C$ .
Let us consider several queries:
- $\langle 2, 2, 1, 3 \rangle$ : There is an even path from cell $(2,2)$ to cell $(1,3)$ , e.g., $(2,2), (2,3), (1,3)$ . Of course, $(2,2), (1,2), (1,3)$ is also a valid even path.
- $\langle 4, 2, 4, 3 \rangle$ : There is an even path from cell $(4,2)$ to cell $(4,3)$ , namely $(4,2), (4,3)$ .
- $\langle 5, 1, 3, 4 \rangle$ : There is no even path from cell $(5,1)$ to cell $(3,4)$ . Observe that the only two neighboring cells of $(5,1)$ are cell $(5,2)$ and cell $(4,1)$ , and both of them contain odd numbers (7 and 11, respectively), thus, there cannot be any even path originating from cell $(5,1)$ .
The maze considered in this problem is in the form of a matrix of integers $A$ of $N \times N$ . The value of each cell is generated from a given array $R$ and $C$ of $N$ integers each. Specifically, the value on the $i^{th}$ row and $j^{th}$ column, cell $(i,j)$ , is equal to $R_i + C_j$ . Note that all indexes in this problem are from $1$ to $N$ .
A path in this maze is defined as a sequence of cells $(r_1,c_1), (r_2,c_2), \dots, (r_k,c_k)$ such that $|r_i - r_{i+1}| + |c_i - c_{i+1}| = 1$ for all $1 \le i < k$ . In other words, each adjacent cell differs only by $1$ row or only by $1$ column. An even path in this maze is defined as a path in which all the cells in the path contain only even numbers.
Given a tuple $\langle r_a,c_a,r_b,c_b \rangle$ as a query, your task is to determine whether there exists an even path from cell $(r_a,c_a)$ to cell $(r_b,c_b)$ . To simplify the problem, it is guaranteed that both cell $(r_a,c_a)$ and cell $(r_b,c_b)$ contain even numbers.
For example, let $N = 5$ , $R = \{6, 2, 7, 8, 3\}$ , and $C = \{3, 4, 8, 5, 1\}$ . The following figure depicts the matrix $A$ of $5 \times 5$ which is generated from the given array $R$ and $C$ .
Let us consider several queries:
- $\langle 2, 2, 1, 3 \rangle$ : There is an even path from cell $(2,2)$ to cell $(1,3)$ , e.g., $(2,2), (2,3), (1,3)$ . Of course, $(2,2), (1,2), (1,3)$ is also a valid even path.
- $\langle 4, 2, 4, 3 \rangle$ : There is an even path from cell $(4,2)$ to cell $(4,3)$ , namely $(4,2), (4,3)$ .
- $\langle 5, 1, 3, 4 \rangle$ : There is no even path from cell $(5,1)$ to cell $(3,4)$ . Observe that the only two neighboring cells of $(5,1)$ are cell $(5,2)$ and cell $(4,1)$ , and both of them contain odd numbers (7 and 11, respectively), thus, there cannot be any even path originating from cell $(5,1)$ .
输入格式
Input begins with a line containing two integers: $N$ $Q$ ( $2 \le N \le 100\,000$ ; $1 \le Q \le 100\,000$ ) representing the size of the maze and the number of queries, respectively. The next line contains $N$ integers: $R_i$ ( $0 \le R_i \le 10^6$ ) representing the array $R$ . The next line contains $N$ integers: $C_i$ ( $0 \le C_i \le 10^6$ ) representing the array $C$ . The next $Q$ lines each contains four integers: $r_a$ $c_a$ $r_b$ $c_b$ ( $1 \le r_a, c_a, r_b, c_b \le N$ ) representing a query of $\langle r_a, c_a, r_b, c_b \rangle$ . It is guaranteed that $(r_a,c_a)$ and $(r_b,c_b)$ are two different cells in the maze and both of them contain even numbers.
输出格式
For each query in the same order as input, output in a line a string "YES" (without quotes) or "NO" (without quotes) whether there exists an even path from cell $(r_a,c_a)$ to cell $(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
输入 #2
3 2 30 40 49 15 20 25 2 2 3 3 1 2 2 2
输出 #2
NO YES
Explanation for the sample input/output #1
This is the example from the problem description.
This is the example from the problem description.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted