AT_arc226_c [ARC226C] Square Corner Packing
题目描述
有一个 $H$ 行 $W$ 列的网格。记 $(i, j)$ 为从上往下第 $i$ 行、从左往右第 $j$ 列的单元格。初始时,所有单元格都是白色。
你可以执行如下操作任意次:
- 选择满足如下条件的整数 $r, c, s$,并将单元格 $(r, c), (r+s, c), (r, c+s), (r+s, c+s)$ 涂成黑色。
- $1 \le r < r+s \le H$
- $1 \le c < c+s \le W$
- 单元格 $(r, c), (r+s, c), (r, c+s), (r+s, c+s)$ 都是白色。
请你求出最多可以执行多少次操作,并输出一种达到最大操作次数的操作序列。
共有 $T$ 组测试数据。请分别解答每一组数据。
输入格式
输入由标准输入给出,格式如下:
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组测试数据包含一行:
> $H$ $W$
输出格式
对于每组测试数据,设最多可以执行 $K$ 次操作,每次操作选择的整数为 $r_i, c_i, s_i$,请输出如下格式:
> $K$
> $r_1$ $c_1$ $s_1$
> $r_2$ $c_2$ $s_2$
> $\vdots$
> $r_K$ $c_K$ $s_K$
如果存在多种达到最大操作次数的方案,输出任意一种均可。
说明/提示
### 样例解释 1
对于第一组测试数据,输出的 6 次操作分别将如下单元格染成黑色。数字 $i$ 表示在第 $i$ 次操作中被染黑的单元格,`.` 表示从未被染黑的单元格。
```
135135
66....
664242
135135
..4242
```
其他输出方案只要满足条件也可通过。
### 数据范围
- $1 \le T \le 500$
- $2 \le H, W \le 500$
- 所有测试数据中 $HW$ 的总和不超过 $250000$。
- 所有输入值均为整数。
由 ChatGPT 5 翻译