SSL-ZYC 家族
2018-01-29 07:52
281 查看
题目大意:
已知连在一起的小写字母为一个家族,求一块大陆上有多少家族?
思路:
这道题由于数据小,所以可以用DFS也可以用BFS。
这道题和 找石油 细胞问题 很像,而那两题我都用了BFS,所以这道题我用的是DFS。
先将这块大陆读入在数组a里面,然后枚举家族所在位置,找到后DFS清零,计数。
详见代码。
代码:
已知连在一起的小写字母为一个家族,求一块大陆上有多少家族?
思路:
这道题由于数据小,所以可以用DFS也可以用BFS。
这道题和 找石油 细胞问题 很像,而那两题我都用了BFS,所以这道题我用的是DFS。
先将这块大陆读入在数组a里面,然后枚举家族所在位置,找到后DFS清零,计数。
详见代码。
代码:
#include <cstdio> #include <iostream> using namespace std; char c; int a[202][202],sum,n; void dfs(int x,int y) { if (a[x][y]==0) return; a[x][y]=0; dfs(x+1,y); dfs(x-1,y); dfs(x,y+1); dfs(x,y-1); } int main() { freopen("family.in","r",stdin); freopen("family.out","w",stdout); scanf("%d",&n); int j; for (int i=0;i<=n;i++) { int j=0; while ((c=getchar())!='\n') { j++; if (c>='a'&&c<='z') a[i][j]=1; } } for (int i=1;i<=n;i++) for (int k=1;k<=200;k++) if (a[i][k]==1) { sum++; dfs(i,k); } printf("%d",sum); return 0; }
相关文章推荐
- SSL-ZYC 1455 电子老鼠闯迷宫
- SSL-ZYC 反射
- SSL-ZYC NOIP
- SSL-ZYC 奇数统计
- SSL-ZYC 前缀转后缀
- SSL-ZYC 2347 搭配购买
- SSL-ZYC 2324 细胞问题
- SSL-ZYC 道路阻塞
- SSL-ZYC 懒惰的奶牛②
- SSL-ZYC 有理逼近
- SSL-ZYC 1125 集合
- SSL-ZYC 1454 找石油
- SSL-ZYC 1758 连通图
- SSL-ZYC 二项式展开式
- SSL-ZYC 活动安排
- SSL-ZYC 1692 魔板
- SSL-ZYC 1127 方程的解数
- 家族 SSL_1896 (并查集)
- SSL-ZYC 1614 医院设置
- SSL-ZYC 最小步数