Time
Limit: 2000/1000 MS (Java/Others) Memory Limit:
65536/32768 K (Java/Others)
Total Submission(s):
10644 Accepted Submission(s):
6176
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 char map[101][101]; 5 int dir[8][2]={ 6 {1,0}, 7 {-1,0}, 8 {0,1}, 9 {0,-1}, 10 {1,1}, 11 {-1,-1}, 12 {1,-1}, 13 {-1,1} 14 }; 15 int n,m; 16 void dfs(int st,int en) 17 { 18 for(int i=0;i<8;i++) 19 { 20 if(st+dir[i][0]>=n&&st+dir[i][0]<0) continue; 21 if(en+dir[i][0]>=m&&en+dir[i][0]<0) continue; 22 if(map[st+dir[i][0]][en+dir[i][1]]==‘@‘) 23 { 24 map[st+dir[i][0]][en+dir[i][1]]=‘*‘; 25 dfs(st+dir[i][0],en+dir[i][1]); 26 } 27 } 28 } 29 int main() 30 { 31 int i,j,cnt; 32 while(scanf("%d%d",&n,&m),n+m) 33 { 34 cnt=0; 35 for(i=0;i<n;i++) 36 scanf("%s",map[i]); 37 for(i=0;i<n;i++) 38 { 39 for(j=0;j<m;j++) 40 { 41 if(map[i][j]==‘@‘) 42 { 43 dfs(i,j); 44 cnt++; 45 } 46 } 47 } 48 printf("%d\n",cnt); 49 } 50 return 0; 51 }
HDUOJ---1241Oil Deposits(dfs),布布扣,bubuko.com
原文:http://www.cnblogs.com/gongxijun/p/3663013.html