该题是问你几步可以把该位置变成黑色,其实就4个情况:
第一种,自己就是黑的输出0
第二种 自己不是黑,并且地图没有黑输出 -1
第三种自己不是黑,但是它该行或者该列有黑输出1
剩下都输出2
代码如下
#include "bits/stdc++.h"
using namespace std;
char s[55][55];
int main(){
int t,n,m,x,y;
while (cin>>t){
while (t--){
cin>>n>>m>>x>>y;
int flag=1,flag2=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>s[i][j];
if(s[i][j]=='B')flag2=0;
if(i==x&&j==y)continue;
else if(s[i][j]=='B'&&(i==x||j==y))flag=0;
}
}
if(s[x][y]=='B')cout<<0<<endl;
else{
if(flag2)cout<<-1<<endl;
else{
if(flag==0)cout<<1<<endl;
else cout<<2<<endl;
}
}
}
}
return 0;
}