1. 程式人生 > >uva 572 簡單的深搜

uva 572 簡單的深搜

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

const int MAXN = 110;
char map[MAXN][MAXN];
int dir[8][2]={  {-1, -1},{-1, 0},{-1, 1},{0, 1},{1, 1},{1, 0},{1, -1},{0, -1} };
int n,m;

void dfs(int x,int y)
{
	map[x][y] = '*';
	for (int i = 0 ; i < 8 ; i++)
	{
		int nx = x + dir[i][0];
		int ny = y + dir[i][1];

		if ( nx < 1 || nx > n || ny < 1 || ny > m )
			continue ;
		if (map[nx][ny] == '*' )
			continue ;
		dfs(nx,ny);
	}
}

int main()
{
	while (scanf("%d%d",&n,&m) != EOF )
	{
		if(m == 0 && n == 0 )
			break;
		getchar();
		for (int i = 1 ; i <= n ; i++)
				scanf("%s",map[i]+1);   //起初挨個字元讀,忘了會把行末的回車讀到,還有我們是從第一列開始讀的,所以+1
		
		int count = 0 ;
		for (int i = 1 ; i <= n ; i++)
			for (int j = 1 ; j <= m ; j++)
			{
				if (map[i][j] == '@')
				{
					dfs(i,j);
					count++;
				}
			}
		printf("%d\n",count);
	}
	return 0;
}


相關推薦

uva 572 簡單

#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAXN = 110; char map[MAXN][MA

2386 Lake Counting(簡單)

Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 38395 Accepted: 19066 Description Due to recent rains, w

NYOJ 1058 部分和問題(簡單

部分和問題 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:2 描述給定整數a1、a2、.......an,判斷是否可以從中選出若干數,使它們的和恰好為K。 輸入

UVA 1374 Power Calculus(迭代

  題目:Power Calculus 題意:輸入正整數n(1≤n≤1000),問最少需要幾次乘除法可以從x得到xn?例如,x31需要6次: 。 計算過程中x的指數應當總是正整數(如x-3=x/x4是不允許的)。 思路:繼續IDA*,看了紫書分析,我想的是每次將得到的集合排序後

和廣簡單對比

近來在學習搜尋,寫個部落格記錄一下,也是本人在CSDN的第一篇部落格,內容上有不對的地方希望大家指出,一同進步! 深搜和廣搜在實現上分別用的是棧(棧和函式遞迴本質是一樣)和佇列。廣搜一般對於尋找最優

uva 10118 免費糖果 +記憶化搜尋

http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html #include<stdio.h> #include<string.h> #define N 45 #define C

UVa 167(八皇後)、POJ2258——記兩個簡單回溯

clu tar mes color cin include ani 位置 頂點 UVa 167 題意:八行八列的棋盤每行每列都要有一個皇後,每個對角線上最多放一個皇後,讓你放八個,使擺放位置上的數字加起來最大。 參考:https://blog.csdn.net/xiao

POJ2386 簡單

Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20765 Accepted: 10463 Description Due to recent rains,

hdu 1518 Square ,,,,花樣剪枝啊!!!

test else 都是 form i+1 cep 題意 。。 bsp Square Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S

HDU 3232 &amp;&amp; UVA 12230 (簡單期望)

house pat field pri put others bmi over describes Crossing Rivers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/

1--城堡問題

col 一個 -- clas set oms max image 結果 深搜1--城堡問題 一、心得 這個題目的棧實現可以看一看 也是很基礎的迷宮問題,也就是一個深搜 二、題目及分析 三、代碼及結果 遞歸 1 #include <iostream>

水叮當的舞步

準備 整數 就會 是否 count() 回溯 class 所在 output 背景 Background 水叮當得到了一塊五顏六色的格子形地毯作為生日禮物,更加特別的是,地毯上格子的顏色還能隨著踩踏而改變。 為了討好她的偶像虹貓,水叮當決定在地毯上跳一支輕盈的舞來賣萌~

BZOJ 1016--最小生成樹計數(&kruskal)

names 連通性 如果 int 沒有 計數 ++ struct include     想我這樣的zz根本不會矩陣樹。。。。。 題目鏈接:     http://www.lydsy.com/JudgeOnline/problem.php?id=1016 S

js對象簡單拷貝

epc object pcl array 是不是 後來 urn div bsp function deepClone(obj1,obj2){ var obj2=obj2||{}; //最初的時候給它一個初始值=它自己或者是一個json fo

js:ajax的get方法實現簡單索框提示

eas cut add index title 節點 subst 直接 foreach 效果演示: 一,使用nodejs搭建後臺環境,通過ajax的get方法將文本框中的值,實時傳輸到後臺進行比較,後臺返回相應的結果,將結果返回到ul中 1,創建路由 app4.js /

jQuery實現簡單前端索功能

量化 可靠性 可靠 標題 ava scrip 清空 sub 是否有效 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&

算法學習筆記(六) 二叉樹和圖遍歷— DFS 與廣 BFS

創建 mark preorder 第一個 高度 變量初始化 term link 文章 圖的深搜與廣搜 復習下二叉樹、圖的深搜與廣搜。從圖的遍歷說起。圖的遍歷方法有兩種:深度優先遍歷(Depth First Search),

遞歸回來時候,取消與不取消標記的探討

不可 ack 使用 等於 for else secure n) continue 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <math.h> 4

簡單二分

方法 找到 highlight 判斷 二分搜索 等於 clas 最小 代碼 class _6ErFenSeek{ public static void main(String[] args){ int[] arr = {30, 52, 25, 60, 10};//靜

UVA 572 BFS 圖論入門

include sizeof 入門 fine body cst gpo esp string 題幹略。 註意八連塊的遍歷方式,秒得很: #include<iostream> #include<cstdio> #include<cstring&