首页 > 其他分享 >DFS与BFS专题

DFS与BFS专题

时间:2025-01-09 13:32:53浏览次数:1  
标签:sy 专题 int DFS st BFS ++ sx include

99. 岛屿数量

image

讲解:https://programmercarl.com/kamacoder/0099.岛屿的数量广搜.html#思路
DFS代码

#include <iostream>
#include <cstring>

using namespace std;

const int N = 55;

int n, m;
int g[N][N];
bool st[N][N];
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

void dfs(int sx, int sy)
{
    for (int i = 0; i < 4; i++)
    {
        int a = sx + dx[i], b = sy + dy[i];
        if (a < 0 || a >= n || b < 0 || b >= m) continue;
        if (st[a][b] || g[a][b] == 0) continue;
        st[a][b] = true;
        dfs(a, b);
    }
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            cin >> g[i][j];

    int res = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (!st[i][j] && g[i][j] == 1)
            {
                st[i][j] = true;
                res++;
                dfs(i, j);
            }
        }
    }
    cout << res << endl;
    return 0;
}

BFS代码

#include <iostream>
#include <cstring>
#include <queue>

using namespace std;

typedef pair<int, int> PII;

const int N = 55;

int n, m;
int g[N][N];
bool st[N][N];
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

void bfs(int sx, int sy)
{
    queue<PII> q;
    q.push({sx, sy});
    st[sx][sy] = true;

    while (q.size())
    {
        PII t = q.front();
        q.pop();

        for (int i = 0; i < 4; i++)
        {
            int a = t.first + dx[i], b = t.second + dy[i];
            if (a < 0 || a >= n || b < 0 || b >= m) continue;
            if (st[a][b] || g[a][b] == 0) continue;
            q.push({a, b});
            st[a][b] = true;
        }
    }
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            cin >> g[i][j];

    int res = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (!st[i][j] && g[i][j] == 1)
            {
                res++;
                bfs(i, j);
            }
        }
    }
    cout << res << endl;
    return 0;
}

标签:sy,专题,int,DFS,st,BFS,++,sx,include
From: https://www.cnblogs.com/Tshaxz/p/18661983

相关文章

  • 阅读理解专题,方法
    问题:‌文章理解不透彻‌:没有深入理解文章的中心思想,导致答题时偏离主题‌‌知识点掌握不全面‌:遗漏某些关键信息,导致答案不完整‌‌题型不熟悉‌:解题思路不清晰或不够完整‌‌语言表述不规范‌:影响答题的准确性‌‌答题匆忙‌:没有仔细阅读问题就急于给出答案,结果答非所问‌......
  • 省选博弈专题
    省选博弈专题GamesonDAG发现\(n\le15\),结合一些东西容易想到枚举子集。容斥一下等价于求\(sg_1=sg_2\)的个数,想到按照\(sg\)分层图。发现如果正着做,对于当前层的每个点都需要之前的层来连边,也就是说要维护之前每层的点集,显然不可做。考虑倒着做,发现其只需要当前......
  • Luogu P2414 NOI2011 阿狸的打字机 题解 [ 紫 ] [ AC 自动机 ] [ 离线思想 ] [ 树状数
    阿狸的打字机:非常牛的AC自动机题。暴力先考虑在暴力的情况下,我们如何计算\(x\)匹配\(y\)的次数。显然,我们会模拟往\(y\)里加字符的过程,在此过程中做KMP进行匹配,统计答案。那么如果涉及多个模式串呢?就可以把KMP加强成AC自动机了。考虑在AC自动机上如何刻画这个......
  • 【 lvgl专题】LVGL核心部件——弧(arc)控件的介绍
    概述本文介绍LVGL核心部件——弧(arc),它由背景和前景弧组成。前景(指示器)可以进行触摸调整。 LVGL核心部件——弧(arc)控件一、部件和样式 LV_PART_MAIN 使用典型的背景样式属性绘制背景,使用圆弧样式属性绘制圆弧。圆弧的大小和位置将遵循 padding 样式属性。LV_PART_I......
  • 双指针算法专题
    目录1.移动零1.1算法原理1.2算法代码 2.复写零2.1算法原理  2.2算法代码3.快乐数3.1算法原理3.2算法代码4.盛水最多的容器4.1算法原理 4.2算法代码5.有效三角形的个数5.1算法原理5.2算法代码6. 剑指offer:和为s的两个数(原)6.1算法......
  • 使用Java API操作HDFS
    第一步:在Windows配置Hadoop运行环境(1)编辑系统环境变量。使用hadoop-version命令查看hadoop环境是否配置成功,如下图所示:(2)在hadoop-3.3.4文件夹的bin目录下添加Windows系统的依赖文件,如下图所示:(3)重启电脑第二步:配置案例环境,使用idea创建一个maven项目。第三步:在pom.xm......
  • 通过shell脚本定时采集数据到HDFS
    第一步:创建shell脚本(在虚拟机1下的/export/data目录下执行viuploadHDFS.sh命令,编辑shell脚本文件,具体代码如下:)第二步:执行shell脚本(确保Hadoop集群处于启动状态,进入到/export/data目录下执行shuploadHDFS.sh)第三步:验证Hadoop日志文件是否上传成功(在浏览器中查看,结果如图......
  • 前缀和与差分专题
    领地选择(二维前缀和)作为在虚拟世界里统帅千军万马的领袖,小Z认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小Z来说是非常重要的。首都被认为是一个占地 C×C 的正方形。小Z希望你寻找到一个合适的位置,使得首都所占领的位置的土地价值和最高。......
  • 线段树进阶练习专题
    小白逛公园题目大意:求一段区间里最大子段和思路:有空补(code:#include<bits/stdc++.h>usingnamespacestd;constintMAXN=500100;intm,n;inta[MAXN];inlineintread(){ intx=0,f=1; charch=getchar(); while(ch>'9'||ch<'0'){ if(ch==&#......
  • 【专题】2025年中国游戏产业趋势及潜力分析报告汇总PDF洞察(附原数据表)
     原文链接:https://tecdat.cn/?p=38614游戏产业作为文化创意与数字技术深度融合的领域,在当代社会经济格局中占据着日益重要的地位。本报告汇总聚焦2025年中国游戏产业,深入剖析其现状与趋势。近年来,中国游戏产业成绩斐然,国内和海外市场收入双创历史新高,细分市场多点开花。《伽......