1. 程式人生 > >NYOJ水池數目

NYOJ水池數目

第一行輸入一個整數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
#include<stdio.h>
int a[110][110];
int count;
int n,m;
void fun(int x,int y)
{
	if(x<n&&x>=0&&y<m&&y>=0)
	{
		if(a[x][y]==1)
		{
			a[x][y]=0;
			fun(x+1,y);
			fun(x-1,y);
			fun(x,y+1);
			fun(x,y-1);
		}
	}
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		
		count=0;
		int i,j;
		scanf("%d%d",&n,&m);
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				scanf("%d",&a[i][j]);
			}
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				if(a[i][j]==1)
				{
					count++;
					fun(i,j);
				}
			}
		}
		printf("%d\n",count);
	}
	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 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算