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 翻译