题意:N*M的图中有一些'@',从该位置往四周8个位置延伸,求几块互不连通的‘@’构成的块。简单的DFS便能搞定
import java.util.Scanner;
public class Main{
static int m,n;
static char[][] arr=new char[101][101];
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
while(true)
{
m=scan.nextInt();
n=scan.nextInt();
if(m==0)
break;
else{
for(int i=0;i<m;i++)
{
String a=scan.next();
arr[i]=a.toCharArray();
}
int cnt=0;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++){
if(arr[i][j]=='@')
{
cnt++;
dfs(i,j);
}
}
}
System.out.println(cnt);
}
}
}
static void dfs(int i,int j)
{
int[] dir={1,-1,0,0,1,-1,1,-1,0,0,1,-1,1,1,-1,-1};
arr[i][j]='*';
for(int k=0;k<8;k++)
{
int row=i+dir[k];
int cul=j+dir[k+8];
if(row>=0&&row<m&&cul>=0&&cul<n&&arr[row][cul]=='@')
{
dfs(row,cul);
}
}
}
}
分享到:
相关推荐
### 知识点解析 #### 一、题目背景与理解 根据给定的文件信息,我们可以得知这是一段用于解决HDU(Hdu Online Judge)编号为...综上所述,这段代码有效地解决了HDU 1241的问题,展示了DFS在解决实际问题中的应用。
"HDU1241 Oil Deposits.cpp"很可能就是通过BFS策略,解决了资源分配或路径规划的问题。 在这些题目中,"HDU1242 Rescue.cpp"可能涉及到对图的深度优先搜索,模拟救援任务的执行顺序;"HDU1240 Asteroids!".cpp可能...
7. **模板代码**:如快速幂、二分查找、DFS/BFS等常用算法的通用实现。 8. **问题解决策略**:理解题目需求、设计合适的数据结构、分析时间复杂度和空间复杂度、调试和优化代码。 9. **调试技巧**:使用调试工具...
8. **图论与树**:HDU题目中可能涉及图的遍历(深度优先搜索DFS、广度优先搜索BFS)、树的遍历(前序、中序、后序)以及最小生成树、最短路径等算法。 9. **动态规划**:这是一种优化策略,通过构建状态转移方程来...
【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...
八数码的A*算法~不是很高效,但是很适合刚刚学这个算法的朋友们
ACM HDU 题目分类 ACM HDU 题目分类是指对 HDU 在线判题系统中题目的分类,总结了大约十来个分类。这些分类将有助于编程选手更好地理解和解决问题。 DP 问题 DP(Dynamic Programming,动态规划)是一种非常重要...
### hdu1250高精度加法 #### 背景介绍 在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要...
【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...
【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...
HDU ACM教案是针对ACM/ICPC(国际大学生程序设计竞赛)的训练教程,旨在帮助参赛者提升算法和编程技能。"搜索入门"这部分内容是教程中的一个重要章节,主要介绍在解决算法问题时如何有效地运用搜索策略。在这个章节...
HDU1059的代码
2. **搜索算法**:深度优先搜索(DFS)、广度优先搜索(BFS)、二分查找等。 3. **动态规划**:解决具有重叠子问题和最优子结构的问题。 4. **图论算法**:最短路径算法(Dijkstra、Floyd-Warshall)、拓扑排序、...
hdu1001解题报告
hdu 1574 passed sorce
hdu2101AC代码
2. 图的遍历:深度优先搜索(DFS)、广度优先搜索(BFS)等。 * 题目1043:Eight,涉及到多种解决方法。 * 题目1044:Collect More Jewels,涉及到动态规划(DP)的概念。 3. 图的搜索:图的搜索算法、图的路径查找...
【ACM HDU】指的是在ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)中,参赛者在杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的在线评测系统上完成并已解决的题目集合...
【标题】:杭电ACMhdu1163 【描述】:这是一道源自杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的ACM编程竞赛题目,编号为1163。这类问题通常需要参赛者利用计算机编程解决数学、逻辑或算法上的挑战,...
《ACM HDU代码大全3000例:探索算法与编程艺术》 在计算机科学领域,特别是竞赛编程中,ACM(国际大学生程序设计竞赛)是一项极富挑战性的活动,它不仅锻炼了参赛者的逻辑思维能力,还提高了他们在算法设计和实现上...