题目:
链接:点击打开链接
思路:
搜索入门题。
代码:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int m,n; char s[110][110]; int vis[110][110]; void dfs(int x,int y) { if(s[x][y] == ‘*‘ || vis[x][y]) return ; if(x<0 || x>=m || y<0 || y>=n) return ; if(s[x][y] == ‘@‘ && vis[x][y] == 0) s[x][y] = ‘*‘; vis[x][y] = 1; dfs(x-1,y-1); dfs(x-1,y); dfs(x-1,y+1); dfs(x,y-1); dfs(x,y+1); dfs(x+1,y-1); dfs(x+1,y); dfs(x+1,y+1); } int main() { //freopen("input.txt","r",stdin); int cnt; while(scanf("%d%d",&m,&n) != EOF && (m || n)) { memset(vis,0,sizeof(vis)); memset(s,0,sizeof(s)); getchar(); cnt = 0; for(int i=0; i<m; i++) scanf("%s",s[i]); for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { if(s[i][j] == ‘@‘ && vis[i][j] == 0) { dfs(i,j); cnt++; } } } printf("%d\n",cnt); } return 0; }
hdu 1241 Oil Deposits,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u013147615/article/details/26019989