水池数目---深搜思想
生活随笔
收集整理的這篇文章主要介紹了
水池数目---深搜思想
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 //水池個數 深搜思想
2 /*#include<stdio.h>
3 int a[105][105],m,n;
4 void DFS(int x,int y)
5 {
6 if(x<0||x>=m||y<0||y>=n)//到達邊界
7 return;
8 if(a[x][y]!=0)//跳出
9 {
10 a[x][y]=0;//搜完之后 此節點置0
11 DFS(x+1,y);//遞歸調用 往下搜
12 DFS(x,y+1);//右
13 DFS(x-1,y);//上
14 DFS(x,y-1);//左
15 }
16 }
17 int main()
18 {
19 int N,i,j;
20 scanf("%d",&N);
21 while(N--)
22 {
23 int sum=0;
24 scanf("%d%d",&m,&n);
25 for(i=0;i<m;i++)
26 for(j=0;j<n;j++)
27 scanf("%d",&a[i][j]);
28 for(i=0;i<m;i++)
29 for(j=0;j<n;j++)
30 {
31 if(a[i][j]==1)//遇到 1 開始搜
32 {
33 DFS(i,j);
34 sum++;
35 }
36 //printf("%d ",a[i][j]);
37
38 }
39 printf("%d\n",sum);
40 }
41 }*/
輸入第一行輸入一個整數N,表示共有N組測試數據
每一組數據都是先輸入該地圖的行數m(0<m<100)與列數n(0<n<100),然后,輸入接下來的m行每行輸入n個數,表示此處有水還是沒水(1表示此處是水池,0表示此處是地面)輸出輸出該地圖中水池的個數。
要注意,每個水池的旁邊(上下左右四個位置)如果還是水池的話的話,它們可以看做是同一個水池。
樣例輸入
樣例輸出
2 3轉載于:https://www.cnblogs.com/xiaoyunoo/p/3516871.html
總結
以上是生活随笔為你收集整理的水池数目---深搜思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 下拉刷新
- 下一篇: c++ smart pointer 趣谈