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

相关推荐
wen__xvn11 分钟前
Codeforces Round 1014 (Div. 2)2092A - Kamilka and the Sheep c++
开发语言·c++·算法
梁下轻语的秋缘20 分钟前
每日c/c++题 备战蓝桥杯(全排列问题)
c++·算法·蓝桥杯·深度优先
土包子=-=25 分钟前
蓝桥杯嵌入式学习笔记
笔记·学习·蓝桥杯
虾球xz29 分钟前
游戏引擎学习第194天
c++·学习·游戏引擎
AredRabbit31 分钟前
vector<int> 的用法
c++·算法·vector
m0_687399842 小时前
build cinecert/asdcplib to .so or .a
c++·ubuntu·dci
大草原的小灰灰2 小时前
C/C++回调函数实现与std::function和std::bind介绍
c语言·c++
大锦终2 小时前
详解list容器
c语言·开发语言·数据结构·c++·list
DA02212 小时前
C++轻量HeaderOnly的JSON库
开发语言·c++·json
热爱嵌入式的小许2 小时前
基于Linux C++多线程服务器 + Qt上位机开发 + STM32 + 8266WIFI的智慧无人超市
开发语言·c++·qt项目·linux项目·linux无人智慧超市·linux多线程服务器·单片机项目