水池数目

原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=27

代码:

01.#include <stdio.h>
02.#include<string.h>
03.int check[4][2]={{0,-1},{1,0},{0,1},{-1,0}};
04.int arr[100][100];
05.int row,col;
06.void dfs(int r,int c)
07.{
08.int newr,newc;
09.arr[r][c]=0;
10.for(int i=0;i<4;i++)
11.{
12.newr=r+check[i][0];
13.newc=c+check[i][1];
14.if(newr>=0&&newr<row&&newc>=0&&newc<col&&arr[newr][newc]==1)
15.dfs(newr,newc);
16.}
17.}
18.int main()
19.{
20.int num,count;
21.scanf("%d",&num);
22.while(num--)
23.{
24.scanf("%d%d",&row,&col);
25.for(int i=0;i<row;i++)
26.for(int j=0;j<col;j++)
27.scanf("%d",&arr[i][j]);
28.count=0;
29.for(int i=0;i<row;i++)
30.{
31.for(int j=0;j<col;j++)
32.if(arr[i][j]==1)
33.{
34.dfs(i,j);
35.count++;
36.}
37.}
38.printf("%d\n",count);
39.}
40.}
posted @ 2013-05-18 19:08  supersnow0622  Views(137)  Comments(0)    收藏  举报