首页 > 其他分享 >DFS求解连通块问题

DFS求解连通块问题

时间:2024-03-23 10:01:15浏览次数:24  
标签:连通 求解 int res DFS vis num dfs

DFS求解连通块问题

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
char g[35][65];
int vis[35][65],num,res;
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
void dfs(int x,int y){
  if(x<1||x>30||y<1||y>60||g[x][y]=='0'||vis[x][y])return;
  vis[x][y]=1;
  num++;
  for(int i=0;i<4;i++){
    int tx=x+dx[i];
    int ty=y+dy[i];
    dfs(tx,ty);                                                                       
  }
}
int main(){
  for(int i=1;i<=30;i++)
    for(int j=1;j<=60;j++)cin>>g[i][j];
   for(int i=1;i<=30;i++)
    for(int j=1;j<=60;j++){
      num=0;           //连通量初始化
      dfs(i,j);        //对这个位置进行搜索
      res=max(num,res);//记录最大值
    }
 // cout<<res;
    cout<<148;
}

标签:连通,求解,int,res,DFS,vis,num,dfs
From: https://blog.csdn.net/2302_79519348/article/details/136961100

相关文章

  • 递归法求解最大连续子序列和MaxSubSum
    何为递归呢总结一句话就是:向基准情形不断推进核心就在于“递”和“归”递:不断推进归:向基准情形结合今天的例子进一步解释如下:分而治之的思想divideandconquer分三步:“分”“治”“合并”“分”:将子序列看作三种,左半部分右半部分跨越中间元素的子序列“治”......
  • 【VRP问题】基于粒子群算法求解带时间窗的路径最短多车辆多任务车辆路径规划CTWVRP问
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 7-5 列出连通集
    给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个......
  • 最大化运输问题求解——Python实现
    运输问题(TransportationProblem)是运筹学中的经典问题,通常涉及将资源从供应点转移到需求点,以最小化运输成本或满足需求。这个问题在各种实际场景中都有广泛的应用,包括但不限于以下几个方面:供应链管理:在供应链中,最小化运输问题可用于确定最有效的货物运输方式,以满足各个节点之间的......
  • CF938G-动态连通图最短xor路(线段树分治、并查集、线性基)
    link:https://codeforces.com/contest/938/problem/G[!Description]有一张连通的无向图简单图,三种操作:1、加边\((x,y,d)\)2、删边\((x,y)\)3、询问\(x\toy\)的路径中异或最小的路径(不一定是简单路径)保证每次操作后图是连通的\(1\leqn,m,q\leq2\times10^5\).这......
  • 1.基于搜索的路径规划:BFS、DFS、Dijkstra、A*、JPS
    1.概览可以对比不同算法的小动画 PathFinding.js(qiao.github.io)工作空间规划机器人有不同的形状和大小碰撞检测需要了解机器人的几何形状,耗时且难度大 我们希望将机器人表示为点,只需要把工作空间转换为配置空间C-obstacle,将原始的空间膨胀,这是一次性的C-space......
  • 2023年华数杯国际大学生数学建模竞赛B题社会稳定预警研究求解全过程文档及程序
    2023年华数杯国际大学生数学建模竞赛B题社会稳定预警研究原题再现  人类和所有动物一样,都有趋利避害的本能。人类成为造物之主的关键是,他们比其他动物更善于避免伤害。危机总是潜伏在未来。人类发展史是一部不断超越危机的历史(严耀军,2003)。“居安思危”,衡量和警示社会......
  • 九宫幻方(DFS实现)c++
    题目描述题目分析要完成这个问题,我们需要做这几步1.用1~9的数字替换掉输入中的0,且幻方中不能出现重复元素2.替换完成后,要判断是否为幻方判断是否为幻方boolcheck()//检查是否为幻方{ intsum=a[1][1]+a[2][2]+a[3][3];//左对角线的和 if(sum!=a[1][3]+a[2][2]+a[......
  • DFS基础——迷宫
    迷宫关于dfs和bfs的区别讲解。对于上图,假设我们要找从1到5的最短路,那么我们用dfs去找,并且按照编号从大到小的顺序去找,首先找到的路径如下,从节点1出发,我们发现节点2可以走,于是我们就走向了节点2,然后又发现节点2可以走向节点4,于是走向了节点4,然后从节点4走向了节点5,......
  • DFS进阶——全排列
    通过后续的题目希望大家明白,dfs不仅仅是对图的遍历,他还有很多用法。DFS进阶1——回溯先说一下回溯的板子dfs(){for(......){标记信息dfs()撤销标记}}回溯模板——递归实现排列型枚举题目分析其实就是对1~n的数字全排列,这里就可以用dfs去做,1~n全排......