CF2044F Easy Demon Problem

题目描述

机器人定义了一个网格的美丽值,就是其中所有元素的总和。现在他给了你两个数组:一个长度为 $n$ 的数组 $a$ 和一个长度为 $m$ 的数组 $b$。你的任务是利用这两个数组建立一个 $n \times m$ 的网格 $M$,其中 $M_{i,j} = a_i \cdot b_j$ 对于所有的 $1 \leq i \leq n$ 和 $1 \leq j \leq m$ 均成立。 接下来,机器人会提供 $q$ 个查询。对于每个查询,会给出一个整数 $x$。你的目标是判断是否可以通过以下操作,使得网格 $M$ 的美丽值恰好为 $x$: 1. 选择一行 $r$ 和一列 $c$,满足 $1 \leq r \leq n$ 和 $1 \leq c \leq m$。 2. 将所有在第 $r$ 行或第 $c$ 列,或者同时位于这两者交叉处的元素设为 $0$。 需要注意的是,各个查询之间是相互独立的,这意味着你不必实际修改网格的元素为零——你只需判断是否存在这样的一对 $r$ 和 $c$,如果进行上述操作能使网格的美丽值为 $x$。即便网格的初始美丽值已经是 $x$,你仍然需要选择行和列并执行这个操作。

输入格式

第一行包含三个整数 $n$、$m$ 和 $q$,分别表示数组 $a$ 的长度、数组 $b$ 的长度,以及要处理的查询数量($1 \leq n, m \leq 2 \times 10^5$,$1 \leq q \leq 5 \times 10^4$)。 第二行是 $n$ 个整数,表示数组 $a$ 中的元素:$a_1, a_2, \ldots, a_n$($0 \leq |a_i| \leq n$)。 第三行是 $m$ 个整数,表示数组 $b$ 中的元素:$b_1, b_2, \ldots, b_m$($0 \leq |b_i| \leq m$)。 接下来的 $q$ 行中,每行包含一个整数 $x$,表示希望网格经过设零操作后的美丽值($1 \leq |x| \leq 2 \times 10^5$)。

输出格式

对于每个查询,如果存在一种操作能使网格的美丽值变为 $x$,输出「YES」(不带引号);否则输出「NO」(不带引号)。无论「YES」或「NO」的大小写如何(例如,「yES」、「yes」或「Yes」),系统都会识别为正确答案。 **本翻译由 AI 自动生成**

说明/提示

In the second example, the grid is 0 -2 5 0 -3 0 4 -10 0 6 0 -6 15 0 -9 0 0 0 0 0 0 0 0 0 0 By performing the operation with $ r=4 $ and $ c=2 $ , we create the following grid: 0 0 5 0 -3 0 0 -10 0 6 0 0 15 0 -9 0 0 0 0 0 0 0 0 0 0 which has beauty $ 4 $ . Thus, we output YES. In the second query, selecting $ r=3 $ and $ c=5 $ creates a grid with beauty $ -3 $ . In the third query, selecting $ r=3 $ and $ c=3 $ creates a grid with beauty $ 5 $ .