1. 程式人生 > >NYOJ-水池數目(dfs)

NYOJ-水池數目(dfs)

水池數目

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

相關推薦

NYOJ水池數目DFS

描述: 校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。 輸入:

NYOJ-水池數目dfs

水池數目 描述: 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。 輸入: 第一行輸入一個整數N,表示共有N組測試資料 每一組

nyoj--27--水池數目dfs

水池數目 時間限制:3000 ms  |  記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,

NYOJ 27 水池數目 dfs

水池數目 時間限制:3000 ms  |  記憶體限制:65535 KB 難度:4 描述        南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某

NYoj最少步數DFS

描述 這有一個迷宮,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,

NYOJ 27 水池數目 BFS,DFS

水池數目 時間限制:3000 ms  |  記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,

NYOJ 27 水池數目深搜或廣搜

題目很簡單是最基礎的搜尋題 首先是深搜寫法,遞迴 程式碼如下: [cpp] view plaincopyprint? #include<stdio.h> #include<stdlib.h> int m[100][100],a,b;  

The partial sum problem DFSnyoj

The partial sum problem 時間限制:1000 ms  |  記憶體限制:65535 KB 輸入 There are multiple test cases. Each test case contains three lines.The first

DFS連通塊 NYOJ水池數目

題目描述 校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。 輸入 第一行輸入一個整數N,表示共有N組測試資料 每一組資料都是先輸入

NYOJ 27 水池數目DFS

水池數目 時間限制:3000 ms  |  記憶體限制:65535 KB 難度:4 描述南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,

NYOJ 722 數獨dfs

數獨 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:4 描述          數獨是一種運用紙、筆進行演算的邏輯遊戲。玩家需要根據9×9盤面上的已知數字,推理出所

nyoj 1276 機器裝置DFS

機器裝置 描述 Alpha 公司設計出一種節能的機器裝置。它的內部結構是由 N 個齒輪組成。整個機器裝置有 一個驅動齒輪,當啟動它時,它立即按 10,000 圈/小時轉速順時針轉動,然後它又帶動與它相切 的齒輪反方向,即逆時針轉動。齒輪之間互相作用,每個齒輪

nyoj 32 組合數dfs

描述 找出從自然數1、2、… 、n(0< n< 10)中任取r(0< r<=n)個數的所有組合。 輸入 輸入n、r。 輸出 按特定順序輸出所有組

NYOJ 32 組合數dfs

組合數 時間限制:3000 ms  |  記憶體限制:65535 KB 難度:3 描述找出從自然數1、2、... 、n(0<n<10)中任取r(0<r<=n)個數的所

nyoj 32-組合數DFS

組合數 時間限制:3000 ms  |  記憶體限制:65535 KB 難度:3 描述找出從自然數1、2、... 、n(0<n<10)中任取r(0<r<=n)個數的所有組合。 輸入輸入n、r。 輸出按特定順序輸出所有組合。 特定順序

[ACM] POJ 3740 Easy Finding DFS

cas oss miss 矩陣 org fin contest std size Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16202 Accepted: 4349

ECNU 3260 袋鼠媽媽找孩子dfs

highlight 另一個 () class div names 中一 ble problem 鏈接:http://acm.ecnu.edu.cn/problem/3260/ 題意: 給出一個x,y,k。求從左上角到(x,y)最短路徑不少於k而且最快到達(x,y)的迷宮。(

POJ 2386 Lake CountingDFS

poj 所有 tput algorithm space 答案 復雜度 for pre 題意:有一個大小為N×M的園子,雨後積起了水。八連通的積水被認為是連在一起的。求園子裏一共有多少水窪? * * * * W* (八連通指的就是左圖中相對W的*的部分)

HIT1946 希爾伯特分形曲線dfs

pic ios put 組成 快的 結束 return ext ati 補第二次期末考的題……發現代碼細節還需要加強啊……這樣一道題一直犯小錯誤。 題目鏈接:   http://acm.hit.edu.cn/hoj/problem/view?id=1946 題目描述:

POJ - 3984 - 迷宮問題 DFS

define class ac代碼 ng- art clu cstring fff table 迷宮問題 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10936 Accep