翻卡片:翻转1张B卡片为A后求最大连通A数量

nz294322 程序题 共 个子题

蓝桥杯青少组C++编程国赛题:翻卡片

题目描述

小蓝在玩翻卡片游戏,每张卡片一面写着大写字母"A",另一面写着大写字母"B"。首先将卡片排成一个N*N的矩阵,有的卡片是A面朝上,有的卡片是B面朝上。

现给定N的值,及N*N矩阵中每张卡片的状态,请你帮助小蓝挑选一张B面的卡片,翻转成A面,使得翻转后的上、下、左、右四个方向相连的A面卡片最多,并将相连最多的卡片数量输出。

示例

N=3,3*3的矩阵中的卡片状态如下:

A B B
A B A
B A B

选择第二行第二列的B面卡片,翻转为A面,可以使翻转后四个方向相连的A面卡片最多,为5张,示意如下:

A B B
A A A
B A B
// 连通的A共有5个:(0,0),(1,0),(1,1),(1,2),(2,1)

输入描述

第一行输入一个正整数N(2≤N≤50),表示矩阵的行数和列数。 第二行开始输入N行,每行输入N个字符('A'或者'B'),表示矩阵中卡片状态,字符之间以一个空格隔开。

输出描述

输出一个整数,表示翻转后矩阵中上、下、左、右四个方向相连的最多A面卡片张数。

样例输入

3
A B B
A B A
B A B

样例输出

5

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧