044 红与黑 蘑菇阵
红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入描述:输入包含多组数据。每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下: “.”:黑色的瓷砖; “#”:白色的瓷砖; “@”:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。 输出描述: 对应每组数据,输出总共能够到达多少块黑色的瓷砖。 输入 输出:45 解题思路 :下图就是这道题的原型,灰色的也代表黑色,是人物站立的地方,所求的结果是黑色方块连接的块数一共是多少个? 采用的是深度优先搜索方法 # include <iostream> # include <stdlib.h> # include <string> # include <vector> # include <math.h> # include <queue> # include <fstream> using namespace std ; class pos { public : int x ; int y ; } ; int bfs ( vector < vector < char >> & map ,