精密科技东莞网站建设,本地wordpress怎么弄网站,做销售怎样去寻找客户,识图找图P1767 家族_NOI导刊2010普及#xff08;10#xff09; 题目描述 在一个与世隔绝的岛屿上#xff0c;有一个有趣的现象#xff1a;同一个家族的人家总是相邻的#xff08;这里的相邻是指东南西北四个方向#xff09;#xff0c;不同的家族之间总会有河流或是山丘隔绝10 题目描述 在一个与世隔绝的岛屿上有一个有趣的现象同一个家族的人家总是相邻的这里的相邻是指东南西北四个方向不同的家族之间总会有河流或是山丘隔绝但同一个家族的人不一定有相同姓氏。现在给你岛上的地图求出岛上有多少个不同的家族。岛上的地图有n行每行有若干列每个格子中要么是“ ”表示大海要么是“*”表示河流或山丘要么是小写字母表示一户人家的姓氏。 输入输出格式 输入格式 第一行是个数字N表示下面信息的行数。接下来是N行字符每行由小写字母和*号组成有些行的最前面也可能包含若干连续的空格表示这些区域是大海每一行最多不超过200个字符。 输出格式 一个数字表示家族数。 输入输出样例 输入样例#14
*zlw**pxh
l*zlwk*hx*
w*tyy**yyyzzl输出样例#13 说明 10%的数据n≤1。 30%的数据n≤10。 100%的数据n≤100每一行最多不超过200个字符。 _NOI导刊2010普及10 思路谔谔大水题。 #includeiostream
#includecstdio
#includealgorithm
#includecstring
using namespace std;
int dx[4]{1,0,0,-1};
int dy[4]{0,1,-1,0};
char c[210],a[210];
int n,m,num,map[110][210],vis[110][210];
void dfs(int X,int Y){for(int i0;i4;i){int cxdx[i]X;int cydy[i]Y;if(cx1cxncy1cym!vis[cx][cy]!map[cx][cy]){vis[cx][cy]1;dfs(cx,cy); }}
}
int main(){//freopen(family.in,r,stdin);//freopen(family.out,w,stdout);scanf(%d,n);memset(map,-1,sizeof(map));gets(c);for(int i1;in;i){gets(c);int lenstrlen(c);for(int j0;jlen;j)if(c[j]ac[j]z) map[i][j1]0;mmax(len,m);}for(int i1;in;i)for(int j1;jm;j)if(!map[i][j]!vis[i][j]){num;dfs(i,j);}coutnum;
} 转载于:https://www.cnblogs.com/cangT-Tlan/p/7506065.html