Oil Deposits
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<iostream> using namespace std; char map[21][21]; int M,N,res; int xx[]={0,0,1,-1,-1,1,-1,1}; int yy[]={1,-1,0,0,1,-1,-1,1}; int fun(int x,int y) { if(x<0||y<0||x>=N||y>=M) return 0; return 1; } void DFS(int x,int y) { int i,j,x1,y1; map[x][y]='*'; for(i=0;i<8;i++) { x1=x+xx[i]; y1=y+yy[i]; if(map[x1][y1]=='@'&&fun(x1,y1)) { DFS(x1,y1); } } } int main( ) { while(scanf("%d%d",&N,&M),N||M) { int i,j,a,b; res=0; getchar(); for(i=0;i<N;i++) for(j=0;j<M;j++) cin>>map[i][j]; for(i=0;i<N;i++) { for(j=0;j<M;j++) if(map[i][j]=='@') { res++; DFS(i,j); } } printf("%d\n",res); } return 0; } 注意输入格式。。其它的跟上面那题一样。
posted on 2011-05-11 03:49 more think, more gains 阅读(115) 评论(0) 编辑 收藏 举报