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

上海市计算机学会竞赛平台2024年7月月赛丙组池塘计数

题目描述

有 n×mn×m 个方格,一些方格是水,用字符 . 表示,一些方格是陆地,用字符 # 表示。

两个方格相邻的定义是这两个方格至少有一个公共的边,每个方格最多有四个相邻的方格。

若相邻的方格都是水,那么就会连成更大一个池塘。请计算给定的地形中有多少个不连通的池塘。

输入格式
  • 第一行:两个整数 nn 和 mm;
  • 第二行到第 n+1n+1 行:第 i+1i+1 行有 mm 个字符。
输出格式
  • 单个整数:表示有多少个不连通的池塘
数据范围
  • 对于 30%30% 的数据,1≤n,m≤101≤n,m≤10
  • 对于 60%60% 的数据,1≤n,m≤1001≤n,m≤100
  • 对于 100%100% 的数据,1≤n,m≤2001≤n,m≤200
样例数据

输入:

3 5
...##
.#.##
###..

输出:

2

详见代码:

#include<bits/stdc++.h>
using namespace std;
int n, m;
char a[205][205];
int ans = 0;
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
void bfs(int x, int y) 
{
    queue<pair<int, int>> q;
    q.push({x, y});
    while(!q.empty()) 
    {
        x = q.front().first;
        y = q.front().second;
        q.pop();
        for(int i = 0; i < 4; i++) 
        {
            int xx = x + dx[i];
            int yy = y + dy[i];
            if (a[xx][yy] == '.') 
            {
                q.push({xx, yy});
                a[xx][yy] = '#';
            }
        }
    }
    return;
}
int main() 
{
    cin >> n >> m;
    for(int i = 1; i <= n; i++) 
    {
        for(int j = 1; j <= m; j++) 
        {
            cin >> a[i][j];
        }
    }
    for(int i = 1; i <= n; i++) 
    {
        for(int j = 1; j <= m; j++) 
        {
            if (a[i][j] == '.') 
            {
                a[i][j] = '#';
                ans++;
                bfs(i, j);
            }
        }
    }
    cout << ans;
    return 0;
}


http://www.kler.cn/news/303598.html

相关文章:

  • SEAFARING靶场漏洞攻略
  • AnyGPT:多模态语言模型,任意处理语音、图像和音乐
  • 【深度学习】【图像分类】【OnnxRuntime】【Python】VggNet模型部署
  • 项目进度一
  • 数据库常规操作
  • vue引入三维模型
  • 【绿盟科技盟管家-注册/登录安全分析报告】
  • 2024CCPC网络预选赛
  • raksmart大带宽服务器租用
  • mycat双主高可用架构部署-MySQL5.7环境部署第一台
  • 「漏洞复现」紫光电子档案管理系统 selectFileRemote SQL注入漏洞
  • TestCraft - GPT支持的测试想法生成器和自动化测试生成器
  • 前端使用COS上传文件
  • 为什么要进行MySQL增量备份?
  • 【数据结构和算法实践-树-LeetCode112-路径总和】
  • 力扣: 四数相加II
  • Linux安装管理多版本JDK
  • CSS Clip-Path:重塑元素边界的艺术
  • mysql慢sql问题修复
  • 计算机毕业设计 自习室座位预约系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • qt操作excel(QAxObject详细介绍)
  • 论文解读《LaMP: When Large Language Models Meet Personalization》
  • 浏览器插件利器--allWebPluginV2.0.0.20-alpha版发布
  • 首批通过!华为云CodeArts Snap智能开发助手通过可信AI智能编码工具评估,获当前最高等级
  • 气膜体育馆:为学校打造智能化运动空间—轻空间
  • 响应式网站真的就只是多了一个媒体查询吗?
  • CSS学习17--CSS3 过渡、2D变形、3D变形、动画
  • linux 内核代码学习(九)--Linux内核启动和文件系统
  • MySQL 子查询
  • 计算几何学习