CF2036E Reverse the Rivers

题目描述

一群古代贤者密谋,为了自身的便利,决定改道河流,这让世界濒临危机。但在实施宏伟计划之前,他们决定仔细思考策略——贤者们总是如此。 有 $n$ 个国家,每个国家恰好有 $k$ 个地区。对于第 $i$ 个国家的第 $j$ 个地区,他们计算出了一个值 $a_{i,j}$,表示该地区的水量。 贤者们打算在所有 $1 \leq i \leq (n-1)$ 和所有 $1 \leq j \leq k$ 的情况下,在第 $i$ 个国家的第 $j$ 个地区与第 $(i+1)$ 个国家的第 $j$ 个地区之间修建渠道。 由于所有 $n$ 个国家都位于一个大斜坡上,水会流向编号最大的国家。根据贤者们的预测,在渠道系统建成后,第 $i$ 个国家的第 $j$ 个地区的新值将变为 $b_{i,j} = a_{1,j} | a_{2,j} | \dots | a_{i,j}$,其中 $|$ 表示按位“或”运算。 在水重新分配后,贤者们希望选择最适合居住的国家,因此他们会向你提出 $q$ 个查询。 每个查询包含 $m$ 个要求。 每个要求包含三个参数:地区编号 $r$,符号 $o$(可以是“$$”),以及数值 $c$。如果 $o = ""$,则必须严格大于 $c$。 换句话说,所选的国家 $i$ 必须满足所有 $m$ 个要求。如果当前要求 $o = ""$,则必须有 $b_{i,r} > c$。 对于每个查询,你需要输出一个整数——满足条件的最小国家编号。如果有多个国家满足条件,输出编号最小的那个。如果没有满足条件的国家,输出 $-1$。

输入格式

第一行包含三个整数 $n$、$k$ 和 $q$($1 \leq n, k, q \leq 10^5$),分别表示国家数、地区数和查询数。 接下来有 $n$ 行,每行包含 $k$ 个整数 $a_{i,1}, a_{i,2}, \dots, a_{i,k}$($1 \leq a_{i,j} \leq 10^9$),表示第 $i$ 个国家各地区的水量。 然后描述 $q$ 个查询。 每个查询的第一行包含一个整数 $m$($1 \leq m \leq 10^5$),表示要求的数量。 接下来 $m$ 行,每行包含一个整数 $r$、一个字符 $o$ 和一个整数 $c$($1 \leq r \leq k$,$0 \leq c \leq 2 \cdot 10^9$),其中 $r$ 和 $c$ 分别为地区编号和值,$o$ 为“$$”中的一个符号。 保证 $n \cdot k \leq 10^5$,所有查询中 $m$ 的总和也不超过 $10^5$。

输出格式

对于每个查询,输出一个整数,表示满足条件的最小国家编号。如果没有满足条件的国家,输出 $-1$。

说明/提示

在示例中,各地区的初始值如下: $1$ $3$ $5$ $9$ $4$ $6$ $5$ $3$ $2$ $1$ $2$ $7$ 渠道建成后,新值如下: $1$ $3$ $5$ $9$ $1|4$ $3|6$ $5|5$ $9|3$ $1|4|2$ $3|6|1$ $5|5|2$ $9|3|7$ $\downarrow$ $1$ $3$ $5$ $9$ $5$ $7$ $5$ $11$ $7$ $7$ $7$ $15$ 在第一个查询中,需要输出最小的国家编号(即行号),使得水重新分配后,第一个地区(即列)新值大于 $4$ 且小于 $6$,第二个地区新值小于 $8$。只有编号为 $2$ 的国家满足要求。 在第二个查询中,没有国家满足指定要求。 在第三个查询中,只有编号为 $3$ 的国家合适。 在第四个查询中,所有三个国家都满足条件,因此答案是最小编号 $1$。 由 ChatGPT 4.1 翻译