搜索--16
来源:互联网 发布:php 5.4.10.tar.gz 编辑:程序博客网 时间:2024/05/24 22:43
题目大概:
输入n和m,是一个n*m的矩形,里面由*和@组成。找出有几组@。一组@是指,一个@符号在矩形中的八个方向上有@,那这两个@就算一组。
思路:
就是看看这个矩形域内有几团@。显然用深搜,不断查找,直到附近没有了@ 算一组。
但要注意标记记录@是否被计算过。
代码:
#include <iostream>#include <cstring>using namespace std;char map[101][101];int biao[101][101];int dx[8]={1,1,1,-1,-1,-1,0,0},dy[8]={0,1,-1,0,1,-1,1,-1},q,w;int n,m;int s(int f,int g){ for(int i=0;i<8;i++) {q=f+dx[i]; w=g+dy[i]; if(map[q][w]=='@'&&biao[q][w]==0&&q>=1&&q<=n&&w>=1&&w<=m){biao[q][w]=1;s(q,w);} }return 0;}int main(){while(cin>>n>>m){if(m==0&&n==0)break; int sum=0; memset(biao,0,sizeof(biao)); for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {cin>>map[i][j]; } } for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {if(map[i][j]=='@'&&biao[i][j]==0){biao[i][j]=1;s(i,j);sum++;} } } cout<<sum<<endl;} return 0;}
0 0
- 搜索--16
- 16种度盘搜索方法
- 16种网盘搜索方法
- 搜索练习题P-16
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- linux下vi命令大全
- [Leetcode] 144. Binary Tree Preorder Traversal 解题报告
- 致产品经理: 持续集成、持续交付、持续部署和DevOps
- Android Studio之BuildConfig类
- Number Complement
- 搜索--16
- VIM使用技巧记录
- [leetcode: Python] 118.Pascal's Triangle
- listctrl第一列加图标的问题
- Unity 对象池(Object Pooling)理解与简单应用
- Lua内容关于for循环的总结(一)
- Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程
- list set集合remove() ConcurrentModificationException 原因
- 每周荐书:机器学习、spring MVC、Android(评论送书)