【NYOJ 27 水池数目  DFS】

来源:互联网 发布:电脑什么拍照软件 编辑:程序博客网 时间:2024/05/18 02:10

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

#include<cstdio>#include<cstring>using namespace std;int d[4][2]={{-1,0},{1,0},{0,1},{0,-1}};int dp[105][105];int m,n;void dfs(int x,int y){        dp[x][y]=0;        for(int i=0;i<4;i++){            int s=x+d[i][0];            int k=y+d[i][1];            if(s>=0&&s<n&&k>=0&&k<m&&dp[s][k])                dfs(s,k);        }}int main(){    int ncase;    scanf("%d",&ncase);    while(ncase--){        scanf("%d%d",&n,&m);        for(int i=0;i<n;i++)            for(int j=0;j<m;j++)                scanf("%d",&dp[i][j]);        int sum=0;        for(int i=0;i<n;i++)            for(int j=0;j<m;j++){                if(dp[i][j]==1){                    sum++;                    dfs(i,j);                }            }        printf("%d\n",sum);    }}


0 0
原创粉丝点击