题目三
A. Not Shading
原题链接:https://codeforces.com/problemset/problem/1627/A
题目翻译:
这里有一个n行m列的网格。有一些网格是黑色的其他的是白色的。
在一个操作中,你可以挑选一些黑色的网格并且准确地做以下其中一个操作。
把这一行的全部元素涂黑
把这一列的全部元素涂黑
你会得到两个数字r和c。找到需要的最小的操作数把第r行和第c列的元素涂黑或决定这是不可能的。
输入
输入包含不同的测试样例。第一行是一个数字——测试样例的数量。接下来是样例的描述。每个样例的第一行包含四个数字n, m, r和 c (1≤n,m≤501≤n,m≤50; 1≤r≤n1≤r≤n; 1≤c≤m1≤c≤m)——表格中行的数量,表格中列的数量,你需要分别涂黑的行和列。接下来有n 行,每一行包含m个元素。每一个元素不是B就是W,分别指的是黑色的和白色的。
输出
对于每一个样例,如果不可能把第r行和第c 列涂黑,就输出1.否则输出一个单独的数字——所需要的最小的操作数使第r行和第c列变黑。
例子 输入
9
3 5 1 4
WBWWW
BBBWB
WWBBB
4 3 2 1
BWW
BBW
WBB
WWB
2 3 2 2
WWW
WWW
2 2 1 1
WW
WB
5 9 5 9
WWWWWWWWW
WBWBWBBBW
WBBBWWBWW
WBWBWBBBW
WWWWWWWWW
1 1 1 1
B
1 1 1 1
W
1 2 1 1
WB
2 1 1 1
W
B
输出
1
0
-1
2
2
0
-1
1
1
对于第一个例子,我们可以拿出第一行第二列的黑方格并使这一行全部变黑。因此我们可以使第一行第四列全部变黑。
对于第二个例子第二行和第一列已经是黑色的了。
对于第三个例子不可能使第二行第二列变黑。
对于第四个例子,我们可以选中第二行第二列的黑色方格使它的这一列变黑,然后我们可以选中第一行第二列的黑方格使这一行变黑,然后我们能使第一行第二列变黑。