AOJ0118——Property Distribution(DFS)
来源:互联网 发布:https 443端口 编辑:程序博客网 时间:2024/06/17 14:54
题目链接
题目意思就是会给你一个矩阵(最多 100 X 100),然后里面会有三类字符'@', '#', '*', 相邻的(即上下左右)且相同的字符算在一个连通块内,问总共有多少个这样的连通块?裸的DFS,对每种字符用一次DFS再统计总块数即可。
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;char s[105][105]= {'\0'};int n, m;int movx[4]= {-1,0,1,0};int movy[4]= {0,1,0,-1};void dfs(int x,int y,char c){ for(int i=0; i<4; i++) { if(s[x+movx[i]][y+movy[i]]==c) { s[x+movx[i]][y+movy[i]]='.'; dfs(x+movx[i],y+movy[i],c); } }}int main(){ //freopen("in.in","r",stdin); while(scanf("%d%d",&n,&m)!=EOF) { char c=getchar(); int ans=0; if(n==0&&m==0)break; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) scanf("%c",&s[i][j]); c=getchar(); } for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) if(s[i][j]=='@') { ans++; s[i][j]='.'; dfs(i,j,'@'); } for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) if(s[i][j]=='#') { ans++; s[i][j]='.'; dfs(i,j,'#'); } for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) if(s[i][j]=='*') { ans++; s[i][j]='.'; dfs(i,j,'*'); } printf("%d\n",ans); } return 0;}
0 0
- AOJ0118——Property Distribution(DFS)
- AOJ0118 Property Distribution【DFS】
- AOJ0118 Property Distribution(DFS)
- AOJ0118 Property Distribution 裸dfs
- aoj0118 Property Distribution(dfs)
- aoj0118 Property Distribution 暴力dfs
- AOJ0118 Property Distribution 搜索
- aoj0118-Property Distribution
- 【暑假复习】【搜索】AOJ0118:Property Distribution
- AOj0118 dfs
- AOJ 0118 Property Distribution (DFS)
- [DFS] AOJ 0118 Property Distribution
- Aoj 0118 Property Distribution【dfs】
- AOJ 0118 Property Distribution 【DFS】
- 广搜3 ——Property Distribution
- AOJ 0118 Property Distribution (dfs)
- AOJ 0118: Property Distribution (简单DFS)
- AOJ0118(DFS)
- [数据结构与算法]利用栈完成算术表达式求值收获总结
- MemSQL初体验 - (1)传说中速度最快的关系数据库软件
- Idea上传已有项目到git
- Jupyter
- final and static
- AOJ0118——Property Distribution(DFS)
- Swift3.0语言教程字符串与文件的数据转换
- VS2015下的OpenCV配置使用
- struts1的工作原理
- spring boot 默认启动图案
- Category中的属性和成员变量
- 97条架构建议-假设-分享-模式病
- 成为JavaGC专家Part I — 深入浅出Java垃圾回收机制
- Android:Activity启动模式