QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#10703. 钻石与精灵

الإحصائيات

Jack 是一位热爱探索古代遗迹的寻宝猎人。有一天,他偶然发现了一个隐藏的密室,里面有一个巨大的方格网。每个方格中都镶嵌着一定数量的钻石。Jack 注意到墙上写着:“要获得宝藏,你必须找到一条从网格左上角到右下角的路径,并沿途收集尽可能多的钻石。但要注意,一旦进入网格,你只能向右或向下移动。”

Jack 对这个挑战很感兴趣,决定试一试。就在他准备进入网格时,他发现入口附近放着一盏金色的灯。他捡起灯并擦了擦,希望能获得一些额外的运气。令他惊讶的是,一个精灵从灯里跳了出来并向他问候:“你好,主人。我是网格的精灵。我可以满足你一个愿望,但它必须与这个网格有关。你想要什么?”

Jack 思考了片刻,意识到他可以利用精灵的帮助来优化他的路径。他请求精灵允许他向左移动一次,以便收集更多的钻石。精灵点了点头说:“你的愿望实现了。你现在可以向左移动一次,但只能移动一次。请明智地使用它。”

Jack 感谢了精灵并进入了网格。他最多能收集多少颗钻石?

输入格式

输入的第一行包含测试用例的数量 $Z$ ($1 \le Z \le 500\,000$)。接下来是各个测试用例的描述。

每个测试用例的第一行包含两个数字 $n, m$ ($1 \le n, m \le 3\,000$),表示网格的尺寸。

接下来的 $n$ 行,每行包含 $m$ 个整数,其中第 $i$ 行的第 $j$ 个数字 $d_{i,j}$ 表示第 $i$ 行第 $j$ 列方格中的钻石数量 ($0 \le d_{i,j} \le 10^6$)。

所有测试用例的 $n \cdot m$ 之和不超过 $9\,000\,000$。

输出格式

对于每个测试用例,在单独的一行中输出 Jack 可以收集到的最大钻石数量。注意,Jack 不一定要向左移动,且他不能重复收集同一个方格中的钻石。

样例

样例输入 1

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

样例输出 1

6
7

说明

在第一个测试用例中,其中一条最优路径是 RDLDR。在第二个测试用例中,RD 和 RLRD 路径都是最优的。

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.