nefu 984 我是一个粉刷匠



其实刚开始我也没想出来,后来看了其他大神的描述终于明白了,其实就是把每一行每一列遍历一遍。吐舌头

description

 
小明最近在粉刷墙壁,他家的墙壁正好贴了8*8块瓷砖,可惜这些瓷砖都是白色的,小明想把他其中一些刷成黑的,于是就把他家的的墙刷了一下。最后刷完了,小明想知道他至少刷了多少次才刷成如今这个模样。现在我们知道这面墙最后的样子,而且小明也记得他刷的时候每次都是刷了一整列或一整行的瓷砖(每块瓷砖可以被刷多次)。聪明的你能帮小明算算吗?

input

 
输入有8行每行8个字母

output

 
最少刷的次数

sample_input

 
WWWBWWBW
BBBBBBBB
WWWBWWBW
WWWBWWBW
WWWBWWBW
WWWBWWBW
WWWBWWBW
WWWBWWBW

WWWWWWWW
BBBBBBBB
WWWWWWWW
WWWWWWWW
WWWWWWWW
WWWWWWWW
WWWWWWWW
WWWWWWWW

sample_output

 
3
1
 
 
 
 
 
代码如下
using namespace std;
char st[10][10];
int main()
{
    while(cin>>st[0])
    {
        int sum=0,ans=0,a,b;
        for(int i=1;i<8;i++)
        cin>>st[i];
        for(int i=0;i<8;i++)
        for(int j=0;j<8;j++)
        if(st[i][j]=='B')
        ans++;
        if(ans==64)
        sum=8;
        else//遍历行和列
        {
            for(int i=0;i<8;i++)
            {
                a=0,b=0;
                for(int j=0;j<8;j++)
                {
                    if(st[i][j]=='B')
                    a++;
                    if(st[j][i]=='B')
                    b++;
                }
                if(a==8)
                sum++;
                if(b==8)
                sum++;
            }
        }
        cout<<sum<<endl;
    }
    return 0;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值