问题 5671 --快乐的粉刷匠

5671: 快乐的粉刷匠

题目描述

小爱是一位快乐的粉刷匠,她现在需要粉刷一块包含 $n\times m$ 小格子的墙面, 每个格子一开始都是白色的。 小爱可以进行以下两种操作: + 把某一行全部染成红色$R$或者黑色$B$ 。 + 把某一列全部染成红色$R$或者黑色$B$ 。 每次涂到一个格子时,无论这个格子之前是否被染过色,都会被覆盖成当前的颜色。 经过一些操作后,小爱制作完成了一个只有红色与黑色的染色图,她非常得意地拿给小艾展示。小艾并不关心这幅图的美观度,她只想知道这幅图最少几步就能得到,但她不能一下子看出,所以来寻求你的帮助。 给出一幅染色图, 输出最少需要几步可以画成这幅图。 如果小爱在欺骗小艾,这幅图无法通过以上操作获得,则输出 $−1$ .

输入

第一行两个正整数 $n,m$,分别表示染色图的长和宽。 接下来 $n$ 行, 每行一个长度为$m$且只由 $R,B$ 构成的字符串, 用来描述整幅染色图。

输出

输出一个正整数表示答案。

样例输入输出

输入#1 复制
2 8
BBRRRBRB
BBRRRRRB
输出#1 复制
6
输入#2 复制
2 3
RRB
BRR
输出#2 复制
-1

提示

+ 对于 $20\%$ 的数据,保证 $1\leq n,m\leq 3$; + 对于 $40\%$ 的数据,保证$1\le n,m\le 5$; + 对于 $60\%$ 的数据,保证$1\le n,m\le 100$; + 对于另外$20\%$ 的数据,保证$1\le n,m\le 3000$;(且若小爱没有欺骗,那么最少的步数应是 $4513$ 步。) + 对于 $100\%$ 的数据,保证$1\le n,m\le 3000$; 样例1说明:我们可以先把第一行涂成 R,然后把第六列涂成 B,然后把第二行涂成 R,最后把第一、二、八列涂成B
序号 标题 作者 发表时间 费用 订购数 操作