2024年第十五届蓝桥杯青少组C++国赛—割点

割点

题目描述

一张棋盘由n行 m 列的网格矩阵组成,每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。

现给定棋盘上所有棋子的位置,如果要使棋盘上出现两个及以上的棋子连通块,请问最少需要移除几颗棋子?如果无论怎么移除棋子都无法满足要求,则输出 -1。(注:只能通过移除棋子的操作来使棋盘上出现两个及以上的棋子连通块。

由下图可知,最少需要移除 2颗棋子才能使棋盘上出现两个及以上的棋子连通块。

例如:n=3,m=3,3x3的棋盘示意图如下:

移除后棋盘示意图如下:

故答案为 2。

输入格式

本题每个测试点包含多组测试数据第一行包含一个整数T(1 ≤ T ≤ 50),表示数据组数接下来T组数据,每组数据第一行输入两个整数 和 m(1 ≤ n,m ≤ 60),分别表示组成棋盘的网格矩阵的行数和列数,整数之间以一个空格隔开

完整题目可前往题库中心查看,题库中心支持在线编程,涵盖白名单赛事真题及考级真题,助力巩固知识,备战赛事。

https://www.hixinao.com/tiku/cpp/show-3782.html

相关推荐
繁星蓝雨14 小时前
C++设计原理———多重继承(虚基类、菱形继承、委托、重命名、基类和成员初始化)
c++·委托·多重继承·mi·显式初始化列·虚基类·对象布局
旖旎夜光14 小时前
【C++ 基础入门】命名空间、输入输出、缺省参数与函数重载
开发语言·c++·笔记·学习
扶尔魔ocy16 小时前
【QT入门到晋级】用开源的自定义控件开发
c++·qt·自定义控件
akinggw17 小时前
libsherpacore - 基于 sherpa-onnx 的 C++ 语音交互静态库
c++·交互·语音识别
xiaoye-duck17 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(中):全量响应实现和测试
网络·c++·语言模型·chatgpt
東隅已逝,桑榆非晚18 小时前
算法3.双指针法-快乐数
c++·笔记·学习·算法
eggwyw18 小时前
C++相交链表和反转链表详解
开发语言·c++
杜 硕18 小时前
从零开始的C++生活——第六讲——02
c++·算法·生活
小超人诞生日记19 小时前
C++ STL 反向迭代器:从源码框架到适配器实现
c++·算法
青少儿编程课堂19 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园成语接龙大挑战解析
c++·python·算法·bfs·信息学竞赛