QOJ.ac

QOJ

実行時間制限: 40 s メモリ制限: 1024 MB 満点: 37

#12424. 广场舞

統計

你正在组织一场国际舞蹈比赛。你已经准备好了以下所有内容:

  • 一个包含 $R$ 行 $C$ 列的舞池,由单位正方形格子组成;
  • $R \times C$ 名参赛者;
  • 一套尖端的自动化比赛裁判系统。

但你还缺少观众!你担心比赛可能不够精彩,因此你想出了一种计算比赛“趣味度”的方法。

每位参赛者占据舞池中的一个单位正方形格子,并留在那里直到被淘汰。参赛者 $x$ 的“指南针邻居”是另一位参赛者 $y$,满足 $y$ 与 $x$ 共享同一行或同一列,且在 $x$ 和 $y$ 之间的格子中没有其他仍然在场的参赛者。每位参赛者可能有 0 到 4 个指南针邻居(包含边界情况),如果某个正交方向上的所有其他参赛者都被淘汰,这个数量可能会减少。

比赛一轮一轮地进行。在第 $i$ 轮和第 $i+1$ 轮之间,如果参赛者 $d$ 在第 $i$ 轮期间至少有一个指南针邻居,且 $d$ 的技能水平严格小于其所有指南针邻居的技能水平平均值,则 $d$ 被淘汰,且不再参加第 $i+1, i+2, i+3, \dots$ 轮的比赛。注意,在第 $i$ 轮和第 $i+1$ 轮之间可能发生的其他淘汰过程中,$d$ 仍然被视为其其他指南针邻居的邻居。没有指南针邻居的参赛者永远不会被淘汰。如果某一轮结束后没有参赛者被淘汰,则比赛结束。

一轮的趣味度是该轮中所有在场参赛者的技能水平之和(即使是那些将在该轮和下一轮之间被淘汰的参赛者)。比赛的趣味度是所有轮次趣味度之和。

给定第一轮在场舞者的技能水平,求比赛的趣味度。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个整数 $R$ 和 $C$。随后有 $R$ 行,每行包含 $C$ 个整数。第 $i$ 行的第 $j$ 个值 $S_{i, j}$ 表示位于舞池第 $i$ 行第 $j$ 列舞者的技能水平。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是比赛的趣味度。

数据范围

$1 \le S_{i, j} \le 10^6$,对所有 $i, j$ 成立。

测试集 1(可见判定) $1 \le T \le 100$。 $1 \le R \times C \le 100$。

测试集 2(隐藏判定) $10 \le T \le 100$。 $1000 < R \times C \le 10^5$,恰好有 10 个用例。 $1 \le R \times C \le 1000$,恰好有 $T - 10$ 个用例。

样例

样例输入 1

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

样例输出 1

Case #1: 15
Case #2: 16
Case #3: 14
Case #4: 14

说明

在样例 1 中,舞池中只有一名参赛者。由于该参赛者没有任何指南针邻居,他们跳了一轮,比赛就结束了。因此答案等于舞者的技能水平 15。

在样例 2 中,第一轮的趣味度为 $1+1+1+1+2+1+1+1+1=10$。 不在中心也不在角落的参赛者技能水平为 1,但其指南针邻居的平均技能水平为 $4/3$,大于 1,因此他们被淘汰。第二轮的舞池布局如下:

1 . 1
. 2 .
1 . 1

这一轮是最后一轮。角落里的参赛者各有两名指南针邻居,但其技能水平的平均值等于他们自己的技能水平。中心处的参赛者没有指南针邻居。该轮的趣味度为 $1+1+2+1+1=6$。这意味着比赛的趣味度为 $10+6=16$。

在样例 3 中,技能水平为 1 的参赛者在第一轮后被淘汰,而另外两名参赛者留了下来。在第二轮中,另外两名参赛者成为了指南针邻居,这导致技能水平为 2 的参赛者被淘汰。第三轮中只有一名参赛者,使其成为最后一轮。各轮的趣味度分别为 6、5 和 3,使得比赛的趣味度为 14。

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.