水池數目

來源:互聯網
上載者:User

標籤:

時間限制:3000 ms  |  記憶體限制:65535 KB難度:4
描述
南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用電腦算出該地圖中共有幾個水池。
輸入
第一行輸入一個整數N,表示共有N組測試資料
每一組資料都是先輸入該地圖的行數m(0<m<100)與列數n(0<n<100),然後,輸入接下來的m行每行輸入n個數,表示此處有水還是沒水(1表示此處是水池,0表示此處是地面)
輸出
輸出該地圖中水池的個數。
要注意,每個水池的旁邊(上下左右四個位置)如果還是水池的話的話,它們可以看做是同一個水池。
範例輸入
23 41 0 0 0 0 0 1 11 1 1 05 51 1 1 1 00 0 1 0 10 0 0 0 01 1 1 0 00 0 1 1 1
範例輸出
23


#include<stdio.h>int x[120][120];int i,j,k,a,b,c;void f(int c,int d){if(c<0||c>a-1||d<0||d>b-1)return ;if(x[c][d]==0)return ;x[c][d]=0;f(c,d-1);f(c,d+1);f(c+1,d);f(c-1,d);}int main(){int n;scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);for(i=0;i<a;i++)for(j=0;j<b;j++)    scanf("%d",&x[i][j]);    int h=0;    for(i=0;i<a;i++)    {    for(j=0;j<b;j++)    if(x[i][j]==1)    {    f(i,j);        h++;    }    }    printf("%d\n",h);}return 0;}

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

水池數目

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.