CF7A Kalevitch and Chess 题解

小邱

2021-02-19 17:38:21

Personal

题目传送门

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;
}