您的位置:首页 > 其它

UVA 572 Oil Deposits

2015-09-29 22:52 357 查看
基础题目!dfs,搜索图!
#include <iostream>
#include <cstring>
using namespace std;
char arr[105][105];
int m,n;
int dir[8][2]={{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
int dfs(int x,int y)
{
arr[x][y]='*';
for(int k=0;k<8;++k)
{
int dx=x+dir[k][0];
int dy=y+dir[k][1];
if(0<=dx&&dx<m&&0<=dy&&dy<n&&arr[dx][dy]=='@')
{
dfs(dx,dy);
}
}
return 0;
}
int main()
{
while(cin>>m>>n&&m&&n)
{
memset(arr,0,sizeof(arr));
int res=0;
for(int i=0;i<m;++i)
{
for(int j=0;j<n;++j)
{
cin>>arr[i][j];
}
}
for(int i=0;i<m;++i)
{
for(int j=0;j<n;++j)
{
if(arr[i][j]=='@')
{
res++;
dfs(i,j);
}
}
}
cout<<res<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: