#P16585. [GKS 2016 #C] Safe Squares

[GKS 2016 #C] Safe Squares

题目描述

Codejammon 的训练师们正在积极寻找怪物,但如果你不是训练师,这些怪物对你来说可能非常危险。你可能想找到完全没有怪物的安全地点!

将我们的世界视为一个网格,其中某些格子已被怪物占据。我们定义一个安全正方形为一个与网格对齐的 D×DD \times D 的正方形(D1D \ge 1),且该正方形内不包含任何怪物。你的任务是计算在整个世界中有多少个(任意大小的)安全正方形。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含三个整数 RRCCKK。网格有 RRCC 列,包含 KK 个怪物。接下来 KK 行,每行包含两个整数 RiR_iCiC_i,表示第 ii 个怪物所在的行和列。(行从上到下编号,从 00 开始;列从左到右编号,从 00 开始。)

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是该测试用例中安全正方形的总数。

2
3 3 1
2 1
4 11 12
0 1
0 3
0 4
0 10
1 0
1 9
2 0
2 4
2 9
2 10
3 4
3 10
Case #1: 10
Case #2: 51

提示

样例 #1 的网格为:

0 0 0
0 0 0
0 1 0

这里,0 表示没有怪物的格子,1 表示有怪物的格子。共有 1010 个安全正方形:881×11\times 1222×22\times 2

样例 #2 的网格为:

0 1 0 1 1 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1 0
1 0 0 0 1 0 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 1

请注意,样例 #2 只会出现在大数据集中。它有 5151 个安全正方形:32321×11\times 113132×22\times 2553×33\times 3,以及 114×44\times 4

限制条件

1T201 \le T \le 20

对于 iji \ne j,有 (Ri,Ci)(Rj,Cj)(R_i, C_i) \ne (R_j, C_j)。(没有两个怪物在同一个格子内。)

0Ri<R0 \le R_i < Ri=1Ki = 1 \dots K

0Ci<C0 \le C_i < Ci=1Ki = 1 \dots K

小数据集(测试集 1 – 可见)

1R101 \le R \le 10

1C101 \le C \le 10

0K100 \le K \le 10

大数据集(测试集 2 – 隐藏)

1R30001 \le R \le 3000

1C30001 \le C \le 3000

0K30000 \le K \le 3000

翻译由 DeepSeek V4 Pro 完成