QOJ.ac

QOJ

Limite de temps : 6 s Limite de mémoire : 512 MB Points totaux : 100

#1268. 钻石狂潮

Statistiques

有一个 $n \times n$ 的网格,左上角为 $(1, 1)$,右下角为 $(n, n)$。在位于第 $i$ 行第 $j$ 列的单元格 $(i, j)$ 中,有 $n^{2^{a_{i,j}}}$ 颗钻石。

你从 $(1, 1)$ 出发前往 $(n, n)$。在任何单元格 $(i, j)$,你可以移动到 $(i+1, j)$ 或 $(i, j+1)$,前提是不能移出网格。显然,你总共会走 $2n-2$ 步。当你到达一个单元格时,你可以拿走该单元格内的所有钻石,包括起点 $(1, 1)$ 和终点 $(n, n)$。

然而,有些单元格是阻塞的,但你不知道哪些单元格被阻塞了。请编写一个程序来回答 $q$ 次询问。在每次询问中,给定四个整数 $r_1, r_2, c_1, c_2$,你需要报告在不经过任何满足 $r_1 \le i \le r_2$ 且 $c_1 \le j \le c_2$ 的单元格 $(i, j)$ 的前提下,你所能拿到的钻石数量的最大值。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 5$),表示测试用例的数量。对于每个测试用例:

第一行包含两个整数 $n$ 和 $q$ ($2 \le n \le 400, 1 \le q \le 200\,000$),分别表示网格的大小和询问次数。

接下来的 $n$ 行,每行包含 $n$ 个整数,第 $i$ 行包含 $a_{i,1}, a_{i,2}, \dots, a_{i,n}$ ($1 \le a_{i,j} \le n^2$),表示每个单元格中的钻石数量参数。

接下来的 $q$ 行,每行包含四个整数 $r_1, r_2, c_1, c_2$ ($1 \le r_1 \le r_2 \le n, 1 \le c_1 \le c_2 \le n$),描述一个询问。保证每次询问至少存在一条有效路径。

输出格式

对于每次询问,输出一行,包含一个整数:你所能拿到的钻石数量的最大值。注意答案可能非常大,请输出其对 $10^9 + 7$ 取模的结果。

样例

输入格式 1

1
2 2
2 3
1 4
1 1 2 2
2 2 1 1

输出格式 1

276
336

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.