Mirko 在街上发现了一块由 $R \times S$ 个方格(单位正方形)组成的板子,这些方格排列成 $R$ 行 $S$ 列。当 Mirko 发现这块板子时,所有的方格都是白色的。Mirko 决定将其中一些方格涂成黑色。完成之后,他将这块板子连同以下信息一起发给了他的朋友 Slavko:
“亲爱的 Slavko,我向你发起挑战:请找出最少数量的矩形,用它们覆盖所有的黑色方格。同时,任何白色方格都不能被矩形覆盖,任何黑色方格都不能被两个或多个矩形覆盖,且没有任何矩形可以超出板子的边界。”
正如你可能已经猜到的,Slavko 无法应对这个挑战,所以他请求你的帮助。
输入格式
第一行包含两个自然数 $R$ 和 $S$,表示 Mirko 板子的尺寸。 接下来的 $R$ 行中,每一行包含 $S$ 个字符,表示 Mirko 板子的方格。更具体地说,字符 ‘B’ 表示白色方格,字符 ‘C’ 表示黑色方格。
输出格式
输出 $R$ 行,每行包含 $S$ 个由空格分隔的数字,表示 Mirko 挑战的解。 被第一个矩形覆盖的方格在输出中应标记为 1,被第二个矩形覆盖的方格应标记为 2,以此类推,直到最后一个第 $N$ 个矩形,其覆盖的方格标记为 $N$。未被任何矩形覆盖的方格(即白色方格)应标记为 0。
BODOVANJE
测试用例如果违反了题目描述中的任何条件,该测试用例将获得 0 分。 测试用例如果正确覆盖了所有黑色方格,但没有使用最少数量的矩形,则得分计算公式为: $$0.75 \cdot (A / B)^{10} \cdot X$$ 其中 $A$ 表示最优矩形数量,$B$ 表示你解中的矩形数量,$X$ 表示该测试用例的分值。 当然,如果你的解正确覆盖了所有黑色方格并使用了最优数量的矩形,你将获得该测试用例的全部满分。
| 测试用例 | 分值 | 额外限制 |
|---|---|---|
| 1. – 5. | 25 | $1 \le R, S \le 26$ |
| 6. – 10. | 25 | $1 \le R, S \le 100$ |
| 11. – 15. | 25 | $1 \le R, S \le 250$ |
| 16. – 20. | 25 | $1 \le R, S \le 500$ |
样例
输入格式 1
4 5 CCBCB CCBBB CCCBB CCCBB
输出格式 1
1 1 0 2 0 1 1 0 0 0 3 3 3 0 0 3 3 3 0 0
输入格式 2
7 5 CCCBB BCBBB BCCCB BCCCB CCCCC BBBBB BCCCB
输出格式 2
1 1 1 0 0 0 2 0 0 0 0 3 3 3 0 0 3 3 3 0 4 4 4 4 4 0 0 0 0 0 0 5 5 5 0
输入格式 3
5 11 BBCCCBCCCBC BCCBCBBCCCC CCCCBCCCCCC BCBCCCBCCCB CCCCBCBBCCB
输出格式 3
0 0 1 1 1 0 2 2 2 0 3 0 4 4 0 5 0 0 6 6 6 3 7 7 7 7 0 8 8 6 6 6 3 0 9 0 10 10 10 0 6 6 6 0 11 11 11 11 0 12 0 0 13 13 0