小邱
2021-02-19 17:38:21
题目传送门
AC记录
每次都要贴好烦
这题数据不太大,暴力可以过,但我觉得我的方法好一些。
根据题意可以题把转换成输入转全白
根据题意可知,肯定一行或一列全是B就涂,因为如果一行断断续续且续的那一列也断断续续,那么,就不可能成功了!
比如:
BBBBBWB
BBBBBWB
BBBBBWB
BBBBBWB
BBBBBWB
BBBBBWB
BBBBBWB
WWWWWWW
什么?你还不明白,他一次涂一串,怎么断断续续???
剩下的代码上见!
#include<bits/stdc++.h>
using namespace std;
string a[8];//矩阵
int main()
{
int i,ans=0;
for(i=0;i<8;i++)//8行
{
cin>>a[i];
if(a[i]=="BBBBBBBB")//一行全是B,肯定要涂
{
ans++;
a[i]="WWWWWWWW";//让他变成白色
}
}
for(i=0;i<8;i++)//8列
{
if(a[0][i]=='B'||a[1][i]=='B'||a[2][i]=='B'||a[3][i]=='B'||a[4][i]=='B'||a[5][i]=='B'||a[6][i]=='B'||a[7][i]=='B')//一行一行涂完了,该列了,因为可能行列有交叉点,所以断断续续也没事了,这一列只要还有一个是B,说明他所在的那一行没有涂,所以让列来涂
{
ans++;
}
}
printf("%d",ans);
return 0;
}