nyoj 水池數目
水池數目
時間限制:3000 ms | 記憶體限制:65535 KB 難度:4- 描述
- 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。
- 輸入
- 第一行輸入一個整數N,表示共有N組測試資料
每一組資料都是先輸入該地圖的行數m(0<m<100)與列數n(0<n<100),然後,輸入接下來的m行每行輸入n個數,表示此處有水還是沒水(1表示此處是水池,0表示此處是地面) - 輸出
- 輸出該地圖中水池的個數。
要注意,每個水池的旁邊(上下左右四個位置)如果還是水池的話的話,它們可以看做是同一個水池。 - 樣例輸入
-
2 3 4 1 0 0 0 0 0 1 1 1 1 1 0 5 5 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1
- 樣例輸出
-
2 3
- 來源
基礎深度搜索DFS
//#include<stdio.h> //#include<string.h> //bool map[101][101]; //void dfs(int i,int j) //{ // if(i-1>=0&&j>=0&&map[i-1][j]==1) //向上遍歷 // { // map[i-1][j]=0; // dfs(i-1,j); // } // if(i+1>=0&&j>=0&&map[i+1][j]==1)//向下 遍歷 // { // map[i+1][j]=0; // dfs(i+1,j); // } // if(i>=0&&j-1>=0&&map[i][j-1]==1)//向左 遍歷 // { // map[i][j-1]=0; // dfs(i,j-1); // } // if(i>=0&&j+1>=0&&map[i][j+1]==1)//向右 遍歷 // { // map[i][j+1]=0; // dfs(i,j+1); // } //} //int main() // { // // int i,j,n,m; // int sum; // int T; // scanf("%d",&T); // while(T--) // { // scanf("%d%d",&n,&m); // memset(map,0,sizeof(map)); // sum=0; // for(i=0;i<n;i++) // for(j=0;j<m;j++) // scanf("%d",&map[i][j]); // for(i=0;i<n;i++) // for(j=0;j<m;j++) // { // if(map[i][j]==1) // { // sum++; // map[i][j]=0; // dfs(i,j); // } // } // printf("%d\n",sum); // } // return 0; // } // #include<cstdio> int map[101][101]; void dfs(int i,int j) { map[i][j]=0; if(i-1>=0&&j>=0&&map[i-1][j]==1) dfs(i-1,j); if(i+1>=0&&j>=0&&map[i+1][j]==1) dfs(i+1,j); if(i>=0&&j+1>=0&&map[i][j+1]==1) dfs(i,j+1); if(i>=0&&j-1>=0&&map[i][j-1]==1) dfs(i,j-1); } int main() { int T; int n,m; int i,j; int sum; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&map[i][j]); sum=0; for(i=0;i<n;i++) for(j=0;j<m;j++) { if(map[i][j]==1) { sum++; dfs(i,j); } } printf("%d\n",sum); } return 0; }
相關推薦
DFS連通塊 NYOJ水池數目
題目描述 校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。 輸入 第一行輸入一個整數N,表示共有N組測試資料 每一組資料都是先輸入
NYOJ—水池數目(DFS)
描述: 校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。 輸入:
nyoj 水池數目
題目27 題目資訊 執行結果 本題排行 討論區 水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了
NYOJ-水池數目(dfs)
水池數目 描述: 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。 輸入: 第一行輸入一個整數N,表示共有N組測試資料 每一組
NYOJ水池數目
第一行輸入一個整數N,表示共有N組測試資料 每一組資料都是先輸入該地圖的行數m(0<m<100)與列數n(0<n<100),然後,輸入接下來的m行每行輸入n個數,表示此 處有
NYOJ —水池數目
#include<stdio.h> #include<string.h> int a[105][105],b[105][105]; void fun(int x,int y) { if(!a[x][y]||b[x][y]) return ; b[x][y]=1
nyoj 27水池數目
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地
nyoj--27--水池數目(dfs)
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,
NYOJ 27 水池數目 【DFS】
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,
nyoj 題目27 水池數目
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該
NYOJ 27 水池數目(DFS)
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,
nyoj 27 水池數目【遞迴】
順序查詢每找到一個水池就遞迴找和它(四周)相鄰的水池。 水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊
NYOJ 27 水池數目(深搜或廣搜)
題目很簡單是最基礎的搜尋題 首先是深搜寫法,遞迴 程式碼如下: [cpp] view plaincopyprint? #include<stdio.h> #include<stdlib.h> int m[100][100],a,b;
NYOJ 27 水池數目 (BFS,DFS)
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,
nyoj 27水池數目
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖
NYOJ 27 水池數目
#include<stdio.h> int n; int map[101][101]; int row, col; int der[4][2]={{0, 1},{1, 0},{0 , -1},{-1, 0}};//用二維陣列記錄四個方向 void count
NYOJ 27 水池數目(dfs)
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個
深搜 ,廣搜,佇列 nyoj 27 水池數目
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,
nyoj 27 水池數目 搜尋
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,
nyoj ACM:水池數目(dfs)
水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算