Hdu_1241 Oil Deposits
2014-01-29 22:47
399 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241
/* 遍历所有点,找到未被标记的‘@’,num++,标记该节点,对该点进行dfs, 找到相邻的'@',标记该节点,再次进入dfs, 直到各个方向都不存在相邻未被标记的'@'后退出,继续进行遍历 */ #include<iostream> using namespace std; int m,n; char grid[101][101]; int visited[101][101]; int dir[8][2]={{1,0},{1,1},{1,-1},{-1,0},{0,1},{0,-1},{-1,-1},{-1,1}}; int num; //num为deposit的数量 int fr,fc; void dfs(int r,int c){ for(int i=0;i<8;i++) { fr=r+dir[i][0]; fc=c+dir[i][1]; if(fr>=m||fr<0) continue; if(fc>=n||fc<0) continue; if(grid[fr][fc]=='*') continue; if(visited[fr][fc]) continue; visited[fr][fc]=1; dfs(fr,fc); } } int main (){ while(cin>>m>>n) { if(!m) break; for(int i=0;i<m;i++) cin>>grid[i]; num=0; memset(visited,0,sizeof(visited)); for(int i=0;i<m;i++) { for(int j=0;grid[i][j]!='\0';j++) { if(grid[i][j]=='*') continue; if(visited[i][j]) continue; num++; visited[i][j]=1; dfs(i,j); } } cout<<num<<endl; } return 0; }
相关文章推荐
- hdu -1241 Oil Deposits
- HDU 1241 Oil Deposits(求子块个数)
- HDU-1241 Oil Deposits
- HDU-1241-Oil Deposits(BFS)
- HDU 1241 Oil Deposits
- HDU 1241 Oil Deposits
- POJ 1562/HDU 1241 Oil Deposits(BFS)
- HDU 1241 Oil Deposits
- 【hdu】1241-Oil Deposits(DFS)(水)
- UVa 572/POJ 1562/HDU 1241 Oil Deposits(DFS,两种写法)
- HDU 1241 Oil Deposits油田问题(DFS)
- HDU 1241 Oil Deposits
- 【1241】Oil Deposits(HDU)
- HDU 1241 Oil Deposits(DFS)
- L - Oil Deposits HDU - 1241(深搜)
- hdu 1241 Oil Deposits
- hdu 1241 Oil Deposits(DFS)
- HDU 1241 Oil Deposits 【DFS】
- HDU 1241 Oil Deposits (裸DFS)
- hdu 1241 Oil Deposits