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

【DFS】BISHI77数水坑

思路

求解代码

/** * 主方法,程序的入口点 * * @param args 命令行参数 * @throws IOException 可能抛出IO异常 */publicstaticvoidmain(String[]args)throwsIOException{// 使用BufferedReader读取标准输入,用于高效读取输入数据BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));// 使用PrintWriter输出结果,提供高效的输出功能PrintWriterout=newPrintWriter(newOutputStreamWriter(System.out));// 读取第一行输入,并按空白字符分割成字符串数组String[]strA=br.readLine().trim().split("\\s+");// 解析第一行输入中的两个整数,n和mintn=Integer.parseInt(strA[0]);// 网格的行数intm=Integer.parseInt(strA[1]);// 网格的列数// 创建字符串数组用于存储网格数据String[]grid=newString[n];// 创建二维字符数组,用于存储网格的字符表示char[][]gridStr=newchar[n][m];// 读取网格数据for(inti=0;i<n;i++){grid[i]=br.readLine().trim();// 读取一行并去除首尾空白gridStr[i]=grid[i].toCharArray();// 将字符串转换为字符数组}intans=0;// 用于记录找到的'W'的数量// 遍历网格中的每个元素for(inti=0;i<n;i++){for(intj=0;j<m;j++){// 如果当前元素是'W',则增加计数器并执行深度优先搜索if(gridStr[i][j]=='W'){ans++;// 增加计数器dfs(gridStr,i,j);// 执行深度优先搜索,标记相邻的'W'}}}// 输出结果out.println(ans);// 刷新输出流,确保所有数据都被写出out.flush();// 关闭输出流out.close();// 关闭输入流br.close();}/** * 深度优先搜索(DFS)方法,用于遍历网格中的连通区域 * * @param grid 二维字符网格 * @param i 当前处理的行坐标 * @param j 当前处理的列坐标 */privatestaticvoiddfs(char[][]grid,inti,intj){// 检查当前坐标是否超出网格边界if(i<0||j<0||i>=grid.length||j>=grid[0].length){return;}// 如果当前格子是'.',表示已经是访问过的格子,直接返回if(grid[i][j]=='.'){return;}// 将当前格子标记为已访问(用'.'表示)grid[i][j]='.';// 遍历当前格子的8个相邻方向(包括对角线方向)for(intdi=-1;di<=1;di++){for(intdj=-1;dj<=1;dj++){// 跳过当前格子本身if(di==0&&dj==0){continue;}// 递归处理相邻格子dfs(grid,i+di,j+dj);}}}
http://www.jsqmd.com/news/412538/

相关文章:

  • SimpleDateFormat(YYYY-MM-dd)格式化时间出现了bug?
  • 《P1973 [NOI2011] NOI 嘉年华》
  • 华为OD机考双机位C卷 - 几何平均值最大子数组 (Java Python JS GO C++ C)
  • 实现一个简单的文本摘要生成器。
  • pyTorch环境搭建及遇到的算力问题
  • 卷积神经网络(CNN)简介-卷积神经网络介绍
  • 【RCCL】RCCL工具
  • 大数据交易数据湖架构设计指南
  • 2026年2月25日
  • 什么是动态住宅 IP 代理?动态 IP 最常用在哪些业务
  • 搜索已死,问答永生:2026年6大特色GEO服务商实战图谱与避坑指南 - 品牌2025
  • LLM支持的AI Agent上下文感知推荐技术
  • langchain架构设计以及应用案例分享
  • AI获客新范式:2026年6大优质GEO服务商全景解析与实战指南 - 品牌2025
  • TypeScript学习
  • 工业AI的赛道有哪些主要玩家?全球竞争格局与未来趋势探讨
  • pycharm安装及环境配置
  • 整车制造计划排程排产系统的创新与实践
  • 工业超级智能体在整车制造如何实现生产优化与决策协同?
  • 告别盲目投放:2026年七大GEO服务商深度拆解与精准匹配 - 品牌2025
  • Rust学习笔记第2篇
  • 2026年负债人必看:如何合法高效解决信用卡债务问题? - 代码非世界
  • 网贷协商最佳解决方案,教你找到靠谱的债务协商服务商 - 代码非世界
  • 2026年贷款债务协商全攻略,2026年信用卡贷款债务协商,正确的解决方案到底是什么? - 代码非世界
  • 2026年信用卡/贷款逾期后,如何合法协商分期还款? - 代码非世界
  • 《白色相簿2》《歌を忘れた偶像》终章-雪菜线玩后感
  • docker 入门
  • docker 入门2
  • 深入解析 MobileNetV2:边缘AI场景中最常用的轻量化卷积神经网络
  • Perl 条件语句详解