#P550. 「LibreOJ Round #8」Matching

「LibreOJ Round #8」Matching

题目描述

给出 nn 行 mm 列的网格,你可以选择任意两个网格配对,每个网格最多只能与一个网格配对,也可以不与任何网格配对。定义关于两个网格 A,BA, B 的权值函数 f(A,B)f(A, B):

$$\begin{aligned} dx &= \left|x_A - x_B\right| \\ dy &= \left|y_A - y_B\right| \\ f(A, B) &= \begin{cases} dx + dy & , dx + dy \geq k \\ 0 & , dx + dy < k \end{cases} \end{aligned} $$

一个配对方案的权值为其所有网格配对的权值之和 ∑f\sum f。求给出网格中,所有配对方案中权值的最大值。

输入格式

从标准输入中读取数据。

第一行,一个整数 TT,表示数据组数。

接下来 TT 行,每行三个整数 n,m,kn, m, k,表示网格的行数、列数以及权值函数中的常数 kk。

输出格式

输出到标准输出中。

输出共 TT 行,对于每一组数据,输出一行一个整数,表示所有配对方案的配对权值和的最大值。

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

对于 1×11 \times 1 的网格,不存在匹配方案,答案为 00。

对于 1×21 \times 2 的网格,匹配方案唯一,答案为 11。

对于 2×22 \times 2 的网格,左上格与右下格匹配,右上格与左下格匹配,答案为 44。如下图所示。

Explanation3.png

对于 2×32 \times 3 的网格,左上格与中下格匹配,中上格与右下格匹配,右上格与左下格匹配,答案为 77。如下图所示。

Explanation4.png

6
23 66 12
233 666 123
2333 6666 1234
23333 6666 1234
2333 66666 1234
23333 66666 12345
33759
34876089
34987610889
1166494448889
2682884270889
34998761108889
4
1 1 0
1 2 0
2 2 1
2 3 1
0
1
4
7
6
23 66 12
233 666 123
2333 6666 1234
23333 6666 1234
2333 66666 1234
23333 66666 12345
33759
34876089
34987610889
1166494448889
2682884270889
34998761108889

数据范围与提示

对于所有数据,1≤T≤1051 \leq T \leq 10^5,1≤n,m≤1061 \leq n,m \leq 10^6,0≤k≤min⁡(n,m)−10 \leq k \leq \min(n, m) - 1。

详细的数据限制及约定如下(留空表示和上述所有数据的约定相同):

子任务编号 分值(百分比) TT n,mn, m 特殊限制
11 1010 ≤20\leq 20 ≤2000\leq 2000 n≤2n \leq 2
22 1515 ≤5\leq 5 ≤8\leq 8 n×m≤10n \times m \leq 10 且 k=min⁡(n,m)−1k = \min(n, m) - 1
33 2525 ≤3\leq 3 ≤16\leq 16 无
44 1818 ≤100\leq 100 ≤5000\leq 5000 n=mn = m 且 n≡0(mod2)n \equiv 0 \pmod 2
55 3232 ≤105\leq 10^5 ≤106\leq 10^6 无