hdu1241
来源:互联网 发布:能看回看的直播软件 编辑:程序博客网 时间:2024/06/05 05:12
1 1*3 5*@*@***@***@*@*1 8@@****@*5 5 ****@*@@*@*@**@@@@*@@@**@0 0
0122
这道题目其实比以前的几道DFS还要简单,就是简单的判断里面有几块@是连接着的
代码:
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stdio.h>
using namespace std;
int m,n;
struct Nod{
bool visited;
char str;
}array[111][111];
int h[8][2] = {1,0,-1,0,0,-1,0,1,1,1,1,-1,-1,1,-1,-1};
void DFS(int i,int j)
{
array[i][j].visited = true;
int ii,jj;
for(int k = 0;k < 8;k++)
{
ii = i + h[k][0];
jj = j + h[k][1];
if(ii < m && ii >= 0&&jj < n&&jj >= 0)
{
if(array[ii][jj].str == '@'&&!array[ii][jj].visited)
{
DFS(ii,jj);
}
}
}
}
int main()
{
int i,j,k;
while(~scanf("%d%d",&m,&n))
{
if(m == 0)
break;
for(i = 0;i < m;i++)
{
for(j = 0;j < n;j++)
{
cin>>array[i][j].str;
array[i][j].visited = false;
}
}
int sum = 0;
for(i = 0;i < m;i++)
{
for(j = 0;j < n;j++)
{
if(array[i][j].str == '@'&&!array[i][j].visited)
{
sum++;
DFS(i,j);
}
}
}
cout<<sum<<endl;
}
return 0;
}
- HDU1241
- hdu1241
- hdu1241
- HDU1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241
- HDU1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241
- hdu1241 OilDeposits
- react demo9 (组件属性验证propTypes)
- Oracle 中的 to_date(), to_char(), to_number() 用途用法
- [知识点滴]HTML5语义化总结
- 携程日处理20亿数据,实时用户行为服务系统架构实践
- Android 音频系统:从 AudioTrack 到 AudioFlinger
- hdu1241
- trafficserver的DNS初始化源码分析一
- Android Rom定制与修改学习(一)
- yolo源码学习 1
- 带参方法
- 魔咒词典——个人c++解
- java.lang.NoSuchFieldError
- 6174 question
- Android多语言切换