P13055 [GCJ 2020 #1A] Square Dance
题目描述
你正在组织一场国际舞蹈比赛。目前已经准备好以下内容:
* 一个由 $\mathbf{R}$ 行 $\mathbf{C}$ 列单位方格组成的舞池;
* $\mathbf{R} \times \mathbf{C}$ 名参赛选手;
* 一套先进的自动评分系统。
但你还缺少观众!担心比赛可能不够精彩,你设计了一种计算比赛**精彩度**的方法。
每名选手占据舞池的一个单位方格,直到被淘汰为止。选手 $\mathrm{x}$ 的**罗盘邻居**是指满足以下条件的另一选手 $\mathrm{y}$:$\mathrm{y}$ 与 $\mathrm{x}$ 同行或同列,且 $\mathrm{x}$ 与 $\mathrm{y}$ 之间没有其他未被淘汰的选手。每名选手可能有 0 到 4 个罗盘邻居(包含边界),且数量会因某一方向上选手被淘汰而减少。
比赛按轮次进行。在第 $\mathrm{i}$ 轮和第 $\mathrm{i}+1$ 轮之间,若选手 $\mathrm{d}$ 在第 $\mathrm{i}$ 轮时有至少一个罗盘邻居,且 $\mathrm{d}$ 的技能值**严格小于**其所有罗盘邻居技能值的平均值,则 $\mathrm{d}$ 被淘汰,不再参与后续轮次。注意:$\mathrm{d}$ 在被淘汰前仍会作为其他选手的罗盘邻居参与淘汰判定。没有罗盘邻居的选手永远不会被淘汰。若某一轮后无人被淘汰,则比赛结束。
每一轮的精彩度是该轮所有参赛选手(包括即将被淘汰者)技能值之和。比赛的**总精彩度**是所有轮次精彩度的总和。
给定第一轮所有选手的技能值,求比赛的总精彩度。
输入格式
输入第一行包含测试用例数量 $\mathrm{T}$。随后是 $\mathrm{T}$ 个测试用例,每个用例格式如下:
- 第一行:两个整数 $\mathbf{R}$ 和 $\mathbf{C}$;
- 接下来 $\mathbf{R}$ 行:每行 $\mathbf{C}$ 个整数,其中第 $\mathrm{i}$ 行第 $\mathrm{j}$ 列的 $\mathrm{S}_{\mathrm{i}, \mathrm{j}}$ 表示初始位于第 $\mathrm{i}$ 行第 $\mathrm{j}$ 列选手的技能值。
输出格式
对于每个测试用例,输出一行 `Case #x: y`,其中 $\mathrm{x}$ 为测试用例编号(从 1 开始),$\mathrm{y}$ 为比赛的总精彩度。
说明/提示
**样例解释**
- **样例 #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 的选手因邻居平均值 $3/1 > 2$ 被淘汰。
- 第三轮仅剩一人,比赛结束。各轮精彩度分别为 6、5、3,总精彩度 14。
**数据范围**
- $\forall i,j$,$1 \leqslant S_{i, j} \leqslant 10^{6}$。
**测试集 1(9 分,可见评测结果)**
- $1 \leqslant \mathrm{T} \leqslant 100$;
- $1 \leqslant \mathrm{R} \times \mathrm{C} \leqslant 100$。
**测试集 2(28 分,隐藏评测结果)**
- $10 \leqslant \mathrm{T} \leqslant 100$;
- 恰好 10 个用例满足 $1000 < \mathrm{R} \times \mathrm{C} \leqslant 10^{5}$;
- 其余 $\mathrm{T}-10$ 个用例满足 $1 \leqslant \mathrm{R} \times \mathrm{C} \leqslant 1000$。
翻译由 DeepSeek V3 完成