P11224 [COTS 2019] 挑战 Izazov

题目背景

译自 [Izborne Pripreme 2019 (Croatian IOI/CEOI Team Selection)](https://hsin.hr/pripreme2019/) D2T1。$\texttt{15s,0.5G}$。

题目描述

给定 $N\times M$ 的黑白矩阵。用尽可能少数量的矩形覆盖住所有黑色格子,要求: - 每个黑色格子**恰好被一个**矩形覆盖; - 任意两个矩形不重叠; - 矩形不覆盖白色格子。 并输出方案。

输入格式

第一行,两个正整数 $N,M$。 接下来一个 $N\times M$ 的矩阵,每个位置是 $\texttt{C}$ 或者 $\texttt{B}$。其中,$\texttt{C}$ 代表黑色(克罗地亚语「crno」),$\texttt{B}$ 代表白色(克罗地亚语「bijelo」)。

输出格式

输出 $N$ 行,每行 $M$ 个数,表示你的方案: - 未被覆盖的区域,用 $0$ 表示; - 否则,设使用了 $K$ 个矩形,将矩形用 $1\sim K$ 标号后,对应位置用覆盖它的矩形编号表示。 每一行相邻的数要用空格隔开。

说明/提示

对于 $100\%$ 的数据,保证 $1\le N,M\le 500$。 | 测试点编号 | $N,M\le $ | 得分 | | :--: | :--: |:--: | | $ 1\sim 5 $ | $ 26 $ | $ 25 $ | | $ 6\sim 10 $ | $ 100 $ | $ 25 $ | | $ 11\sim 15 $ | $ 250 $ | $ 25 $ | | $ 16\sim 20 $ | $ 500 $ |$ 25 $ | 【计分方式】 如果你输出的是最优解,得满分。 否则,设最优解用的矩形数量为 $A$,你的解用的矩形数量为 $B$,该测试点得分为 $0.75\cdot (A/B)^{10}\cdot 5$ 分。