水池数目
原题链接: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.}

浙公网安备 33010602011771号