水洼数dfs(java)
问题描述:
有一个大小为 N×M 的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出 园子里总共有多少水洼?
*限制条件N, M ≤ 100
样例:输入 N=10, M=12园子如下图
('W’表示积水, '.'表示没有积水)
W…WW.
.WWW…WWW
…WW…WW.
…WW.
…W…
…W…W…
.W.W…WW.
W.W.W…W.
.W.W…W.
…W…W.
输出 3
代码如下(具体看注释)
import java.util.Scanner;
public class Sw {//水洼数目public static void Swxc(char [][]a,int i,int j)//将水洼变为旱地,避免死循环{a[i][j]='.';//将水洼变为旱地//分别向八个方向dfs
// if (j-1>=0&&a[i][j-1]=='W') Swxc(a,i,j-1);
// if (i-1>=0&&a[i-1][j]=='W')Swxc(a,i-1,j);
// if (j+1<=a[0].length-1&&a[i][j+1]=='W')Swxc(a,i,j+1);
// if (i+1<=a.length-1&&a[i+1][j]=='W')Swxc(a,i+1,j);
// if (j-1>=0&&i-1>=0&&a[i-1][j-1]=='W') Swxc(a,i-1,j-1);
// if (j+1<=a[0].length-1&&i-1>=0&&a[i-1][j+1]=='W') Swxc(a,i-1,j+1);
// if (j-1>=0&&i+1<=a.length-1&&a[i+1][j-1]=='W') Swxc(a,i+1,j-1);
// if (j+1<=a[0].length-1&&i+1<=a.length-1&&a[i+1][j+1]=='W') Swxc(a,i+1,j+1);for (int s=-1;s<=1;s++)//简便方法八连通{for(int t=-1;t<=1;t++){if (s==0&&t==0) continue;if (i+s>=0&&i+s<=a.length-1&&j+t>=0&&j+t<=a[0].length-1)if (a[i+s][j+t]=='W')Swxc(a,i+s,j+t);}}}public static void main(String[] args) {Scanner a=new Scanner(System.in);//输入数据int count=0;//计数int b=a.nextInt();int c=a.nextInt();char [][]d=new char[b][c];for (int i=0;i<=b-1;i++)d[i]=a.nextLine().toCharArray();for (int i=0;i<=d.length-1;i++)//循环找到第一个水洼{for (int j = 0; j <= d[0].length - 1; j++) {if (d[i][j] == 'W'){Swxc(d, i, j);count++;//计数加一次,说明是一个水洼}}}System.out.println(count);}
}
水洼数dfs(java)相关推荐
- 水洼数 DFS 蓝桥杯 java代码
水洼数 DFS 蓝桥杯 java代码 有一个大小为N * M的院子,雨后积起了水,八连通的积水被认为是连在一起的,请求出园子里面总共有多少水洼 限制条件 N, M <=100 10 12 W.. ...
- 水洼数(Java)(dfs)
题解: import java.util.Scanner;public class Practice_水洼数 {static Scanner in = new Scanner(System.in);s ...
- 水洼数目(dfs万能模板)
水洼数目(dfs万能模板) /* 有一个大小为 N×M 的园子,雨后积起了水.八连通的积水被认为是连接在一起的. 请求出 园子里总共有多少水洼?(八连通指的是下图中相对 W 的*的部分) W 限制条件 ...
- C语言水洼数算法,C++ 数据结构之水洼的数量算法
C++ 数据结构之水洼的数量算法 题目: 有一个大小为N*M的园子, 雨后起了积水. 八连通的积水被认为是连接在一起的. 请求出园子里总共有多少水洼. 使用深度优先搜索(DFS), 在某一处水洼, 从 ...
- C语言水洼数算法,水洼的数量算法 代码(C)
题目: 有一个大小为N*M的园子, 雨后起了积水. 八连通的积水被认为是连接在一起的. 请求出园子里总共有多少水洼. 使用深度优先搜索(DFS), 在某一处水洼, 从8个方向查找, 直到找到所有连通的 ...
- 深度搜索—-深度搜索解决矩阵搜索问题(水洼数计算)
深度搜索--深度搜索解决矩阵搜索问题(水洼数计算) 一.题目 有一个大小为N*M的园子,雨后积起了水.八连通的计税被认为是连接在一起的.请求出园子里总共有多少水洼? (八连通指的是下图中相对w的*的部 ...
- Java 水洼问题 dfs
深度优先解决水洼问题 有一个大小为 NM 的园子,雨后积起了水.八连通的积水被认为是连接在一起的.请求出园子里总共有多少水洼?(八连通指的是下图中相对 W 的的部分) *** *W* *** 限制条件 ...
- 【DFS练习】水洼数
问题描述: 水洼数目有一个大小为N * M的院子,雨后积起了水, 八连通的积水被认为是连在一起的,请求出园子里面总共有多少水洼 限制条件 N, M <=100 测试集在代码后面 总体思路: 一个 ...
- 算法很美:水洼数(dfs)深搜
题目描述 Descriptions: 由于近日阴雨连天,约翰的农场中中积水汇聚成一个个不同的池塘,农场可以用 N x M (1 <= N <= 100; 1 <= M <= 1 ...
最新文章
- 闲鱼单体应用Serverless化拆分实践
- 真执着 卡巴斯基和Palo Alto找到了BlackEnergy和ExPetr的相似代码
- TensorFlow和深度学习-无需博士学位(TensorFlow and deep learning without a PhD)
- Word中标题、图表自动编号的方法
- Java的超类/基类Object
- Mac安装与配置idea及tomcat
- Linux下C++ Socket编程实例
- 吉利GKUI车机任意安装第三方APP软件教程,DNS劫持应用商店安装软件
- 黑群晖DSM7.1.0物理机安装教程
- 申请自己的免费企业邮箱
- APScheduler定时任务
- win10 +ubuntu20.04双系统安装:双硬盘+nvidia独立显卡
- react实战笔记172:navigate组件
- leetcode:数组:1467自矩形查询
- 用u盘制作u启动重装系统的步骤实现
- 【愚公系列】华为云系列之DevCloud+ECS+MySQL搭建超级冷笑话网站【开发者专属集市】
- 在Word里怎么设置每页不同的页眉
- 什么是防抖和节流?区别是什么?
- Excel表格中多个文本内容快速合并到一个单元格内
- WPA-Enterprise WPA2-Enterprise以及WPA-Personal WPA2-Personal