POJ 1562 Oil Deposits

来源:互联网 发布:防闪退软件下载 编辑:程序博客网 时间:2024/04/30 08:08

题目大意:

        和POJ 2386 Lake Counting相同,有多个测例,每个测例中给出池塘的规模n×m(1 ≤ n, m ≤ 100),'*'表示空白,'@'表示有水,测例以n, m = 0表示结束。

题目链接

代码:

/*                                * Problem ID : POJ 1562 Oil Deposits * Author     : Lirx.t.Una                                * Language   : C++                    * Run Time   : 0 ms                                * Run Memory : 144 KB                               */ #include <iostream>#include <cstdio>#defineMAXW100intn, m;charmat[MAXW][MAXW + 1];voiddfs( int x, int y ) {intdx, dy;intxx, yy;if ( mat[x][y] != '@' ) return ;mat[x][y] = '*';for ( dx = -1; dx < 2; dx++ )for ( dy = -1; dy < 2; dy++ ) {xx = x + dx;yy = y + dy;if ( xx < 0 || xx >= n || yy < 0 || yy > m )continue;dfs( xx, yy );}}intmain() {inti, j;intcnt;while ( scanf("%d%d", &n, &m), n ) {cnt = 0;for ( i = 0; i < n; i++ ) scanf("%s", mat[i]);for ( i = 0; i < n; i++ )for ( j = 0; j < m; j++ )if ( '@' == mat[i][j] ) {dfs( i, j );cnt++;}printf("%d\n", cnt);}return 0;}

0 0