#P11667. [USACO25JAN] Astral Superposition B
[USACO25JAN] Astral Superposition B
题目描述
注意:本题的时间限制为 4 秒,通常限制的 2 倍。
Bessie 正在使用她超酷的望远镜拍摄夜空中所有星星的照片。她的望远镜能够拍摄到一张 ()的星星照片,其中每个像素是一颗星星或者空旷的天空。每颗星星可由恰好一个像素表示,并且没有两颗不同的星星位于同一像素内。
一夜之间,一些奇怪的事情发生在了天空中的星星之上。每颗星星要么消失,要么向右移动 像素,并且向下移动 像素()。如果一颗星星消失或移动超出照片边界,它将不再出现在第二张照片中。
Bessie 在星星移动位置之前和之后拍了照片,但在 Mootoshop 中进行了一些实验后,她不小心将一张照片叠加到了另一张上。现在,她可以在两张照片都是天空的位置看到白色(white)像素,在星星仅存在于恰好一张照片的位置看到灰色(gray)像素,而在两张照片中都有星星的位置看到黑色(black)像素。Bessie 同时记得没有新的星星移动入第二张照片的范围,从而她的第一张照片包含了夜空中所有的星星。
对于 ()个独立的测试用例,给定最终的照片,求在移动事件发生之前天空中星星的最小可能数量。如果不存在星星的排列可以产生给定的最终照片,输出 。
输入格式
输入的第一行包含 ,以下为 个测试用例。
每个测试用例的第一行包含 ,,。
以下 行,每行表示叠加后的照片的一行。从上到下第 行由一个字符串 表示,其中 ,分别表示颜色为白色,灰色以及黑色。
输入保证所有测试用例的 之和不超过 。
输出格式
对于每一个测试用例,输出移动之前存在的星星的最小数量,或 表示不可能。
1
3 0 0
WWB
BBB
GGG
7
3
5 1 2
GWGWW
WGWWW
WBWGW
WWWWW
WWGWW
3 1 1
WWW
WBW
WWW
3 1 0
GGB
GGW
WWW
4
-1
4
提示
样例解释
在样例 #1 中,没有移动发生。第一张照片如下(. 表示天空,* 表示星星):
..*
***
***
第二张照片中最下方一行的星星都消失了,如下:
..*
***
...
这是产生叠加后照片的唯一方式,所以初始时星星的最小可能数量为 。
对于样例 #2,在第一个测试用例中,初始时至少有 颗星星。如果我们令 表示从上到下第 行和从左到右第 列的交点,一种可能性是它们最初位于 ,, 和 。除了位于 的星星消失之外,其他所有星星都移动了。
在第二个测试用例中,在给定的移动方式下,没有任何初始照片中的星星排列可以产生中间的黑色像素。
在第三个测试用例中,初始时至少有 颗星星。一种可能性是它们最初位于 ,, 和 。在第二张照片中,原先位于 的星星消失了,原先位于 的星星移出了照片边界。其他两颗星星向右移动了 像素。
子任务
- 测试点 3:。
- 测试点 4-7:,,。
- 测试点 8-9:,。
- 测试点 10-12:没有额外限制。