Kalevitch and Chess[codeforces]分析

Input
WWWBWWBW
B B B B B B B B
WWWBWWBW
WWWBWWBW
WWWBWWBW
WWWBWWBW
WWWBWWBW
WWWBWWBW
Output
3
Input
WWWWWWWW
B B B B B B B B
WWWWWWWW
WWWWWWWW
WWWWWWWW
WWWWWWWW
WWWWWWWW
WWWWWWWW
Output
1
我为大家提供一种思路:
题目要求求出the minimum amount of rows and columns that Kalevitch has to paint on the white chessboard to meet the client’s requirements.
那肯定是竖直的白线条与水平白线条数量的总和
那么我们可以先遍历每一行的字符串
只要有八个B那么这一行就全是白线条,水平白线条数量加一
如果没有八个B的话,那么肯定是竖直白线条的数量
最后答案便是竖直和水平白线条的总和
这题这样想的话就会很简单
下面是cpp的代码

#include <iostream>
using namespace std;
int main()
{
	char arr[11][11];//定义这个8乘8的字符矩阵
	for (int i = 0; i < 8; i++) {
		cin>>arr[i];//每行输八个字符,一共输八行
	}
	int a=0;//a是水平方向全白的行数
	int v=0;//v是竖直方向全白的列数
	//接下来要去遍历每一行字符串,有白色的个数,如果有八个,说明这一行全白,那么水平方向全白的行数加一
	int t;//t用来计数每行有多少个白色块
	for (int i = 0; i < 8; i++) {
		t = 0;//别忘了每判断一行,都要把t重新归零
		for (int j = 0; j < 8; j++) {
			if (arr[i][j] == 'B')
				t++;
		}
		if (t == 8)
			a++;
		else
			v = t;
	}
	cout << a + v << endl;
	return 0;
}

以下是我补充的C语言的代码(用的是同一个道理)

#include <stdio.h>
#include <string.h>

int main()
{
	char arr[11][11];//定义这个8乘8的字符矩阵,arr可以开大一点
	for (int i = 0; i < 8; i++) {
		scanf("%s",arr[i]);//每行输八个字符,一共输八行
	}
	int a=0;//a是水平方向全白的行数
	int v=0;//v是竖直方向全白的列数
	//接下来要去遍历每一行字符串,有白色的个数,如果有八个,说明这一行全白,那么水平方向全白的行数加一
	int t;//t用来计数每行有多少个白色块
	for (int i = 0; i < 8; i++) {
		t = 0;//别忘了每判断一行,都要把t重新归零
		for (int j = 0; j < 8; j++) {
			if (arr[i][j] == 'B')
				t++;
		}
		if (t == 8)
			a++;
		else
			v = t;
	}
	printf("%d\n",a+v);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

veit sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值