当前位置: 首页 > article >正文

C++题解(32) 2025顺德一中少科院信息学创新班(四期)考核复盘 U536935 黑白图像

(本人已参加该考核)

题目背景

输入一个n×n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块。
如下图所示的图形有3个八连块。

题目描述

输入格式

第1行输入一个正整数n(n≤700),此后输入n行,每行是由n个0或1组成的字符串。

输出格式

输出八连快的个数

输入输出样例

输入 #1

6
100100
001010
000000
110000
111000
010100

输出 #1

3

参考答案

#include <iostream>
using namespace std;

char a[705][705];
int n, sum;

void dfs(int x, int y) 
{
    if (x < 1 || x > n || y < 1 || y > n) return;
    if (a[x][y] != '1') return;
    a[x][y] = '0'; 
    for(int dx = -1; dx <= 1; dx++) 
    {
    	for(int dy = -1; dy <= 1; dy++) 
    	{
    		dfs(x + dx, y + dy);
		}
	}
}
int main() {
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
    	for(int j = 1; j <= n; j++)
    	{
    		cin >> a[i][j];
		}
	}
        
    for(int i = 1; i <= n; i++)
    {
    	for(int j = 1; j <= n; j++)
    	{
    		if(a[i][j] == '1') 
			{
                dfs(i, j);
                sum++;
            }
		}     
	}
    cout << sum;
    return 0;
}

http://www.kler.cn/a/577125.html

相关文章:

  • JavaScript基础-比较运算符
  • springcloud sentinel教程
  • 电脑睡眠智能管控:定时、依状态灵活调整,多模式随心选
  • CameraX学习2-关于录像、慢动作录像
  • Python评估网络脆弱性
  • 对数几率回归(LogisticRegression)基础知识(包含分类任务的概念及评价指标)
  • Docker编排工具Docker Compose
  • sqlserver删除表记录语句,及删除表时清零ID的SQL语句
  • 【高级篇】大疆Pocket 3加ENC编码器实现无线RTMP转HDMI进导播台
  • CATIA V5 二次开发实战:Python实现零件实体智能转产品装配
  • 图像处理篇---opencv中的图像特征
  • C++程序设计语言笔记——基本功能:表达式
  • pytorch tensor创建tensor
  • Maven快速入门指南
  • 2025天津申论(综合市区) 第一题“反向旅游”
  • python:pymunk + pygame 模拟六边形内小球弹跳运动
  • Node.js中HTTPS模块应用详解
  • [补]数电笔记——逻辑代数基础
  • HarmonyOS 应用程序包结构 (发布态)
  • 【Spring Boot 应用开发】-05 命令行参数