CF1392I Kevin and Grid
题目描述
当 Kevin 在 BigMan 的房子里时,突然一个陷阱把他送到了一个有 $n$ 行 $m$ 列的网格上。
BigMan 的陷阱由两个数组配置:数组 $a_1,a_2,\ldots,a_n$ 和数组 $b_1,b_2,\ldots,b_m$。
在第 $i$ 行有一个加热器,使该行升温 $a_i$ 度,在第 $j$ 列有一个加热器,使该列升温 $b_j$ 度,因此单元格 $(i,j)$ 的温度为 $a_i+b_j$。
幸运的是,Kevin 有一套装备,带有一个参数 $x$ 和两种模式:
- 耐热模式:在此模式下,装备可以承受所有温度大于等于 $x$ 的单元格,但一旦进入温度小于 $x$ 的单元格就会被冻结。
- 耐冷模式:在此模式下,装备可以承受所有温度小于 $x$ 的单元格,但一旦进入温度大于等于 $x$ 的单元格就会被烧毁。
一旦 Kevin 落在某个单元格上,如果该单元格温度小于 $x$,装备会自动切换到耐冷模式,否则切换到耐热模式,并且之后无法再更改。
如果两个单元格有公共边,则称它们是相邻的。
一条路径是指一系列单元格 $c_1,c_2,\ldots,c_k$,使得对于 $1 \leq i \leq k-1$,$c_i$ 和 $c_{i+1}$ 是相邻的。
如果存在一条仅包含 Kevin 能够踩到的单元格的路径连接两个单元格,则称这两个单元格是连通的。
一个连通块是一个极大的两两连通的单元格集合。
如果一个连通块包含至少一个网格的边界单元格,则称其为“好”的连通块,否则为“坏”的连通块。
为了评估当前情况,Kevin 会给每个“好”的连通块记 $1$ 分,每个“坏”的连通块记 $2$ 分。
最终得分为温度大于等于 $x$ 的所有连通块得分之和减去温度小于 $x$ 的所有连通块得分之和。
Kevin 有 $q$ 个可能的 $x$ 值,对于每个 $x$,他都想知道最终得分。
请帮助 Kevin 战胜 BigMan!
输入格式
第一行包含三个整数 $n$、$m$、$q$($1 \leq n,m,q \leq 10^5$),分别表示行数、列数和 $x$ 的可能取值个数。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \leq a_i \leq 10^5$)。
第三行包含 $m$ 个整数 $b_1, b_2, \dots, b_m$($1 \leq b_j \leq 10^5$)。
接下来的 $q$ 行,每行包含一个整数 $x$($1 \leq x \leq 2 \cdot 10^5$)。
输出格式
输出 $q$ 行,第 $i$ 行输出输入中第 $i$ 个 $x$ 对应的答案。
说明/提示
在第一个样例中,温度小于 $5$ 的连通块得分为 $1+2$,温度大于等于 $5$ 的连通块得分为 $2$。因此,最终得分为 $2-3=-1$。
由 ChatGPT 4.1 翻译