uva --572
来源:互联网 发布:thunder mac版 编辑:程序博客网 时间:2024/06/16 17:13
//搜索--简单dfs/bfs #include<iostream>#include<cstring>#include<string>#include<cstdio> using namespace std;char map[110][110];int visited[110][110],n,m;int x[]={-1,1,0,0,-1,1,-1,1},y[]={0,0,-1,1,-1,-1,1,1};void dfs(int i,int j){ int k=0,x1,y1; for(k=0;k<8;k++) { x1=i;y1=j; x1=x1+x[k];y1=y1+y[k]; if(x1>=0&&y1>=0&&x1<m&&y1<n&&map[x1][y1]=='@'&&!visited[x1][y1]) { visited[x1][y1]=1; dfs(x1,y1); } }}typedef struct{ int x,y;}Q;void bfs(int i,int j){ Q q[1000];int front=-1,rear=-1; int k,x1,x2,y1,y2; q[++rear].x=i; q[rear].y=j; while(front!=rear) { x1=q[++front].x; y1=q[front].y; for(k=0;k<8;k++) { x2=x1+x[k];y2=y1+y[k]; if(x2>=0&&x2<m&&y2>=0&&y2<n&&map[x2][y2]=='@'&&!visited[x2][y2]) { q[++rear].x=x2; q[rear].y=y2; visited[x2][y2]=1; } } }}int main(){ int k,cnt,i,j; while(scanf("%d %d",&m,&n)!=EOF&&m) { cnt=0; memset(visited,0,sizeof(visited)); for(i=0;i<m;i++) scanf("%s",map[i]); for(i=0;i<m;i++) for(j=0;j<n;j++) { if(map[i][j]=='@'&&!visited[i][j]) { cnt++; bfs(i,j); } } printf("%d\n",cnt); } return 0; }
0 0
- UVa 572
- UVA 572
- UVA 572
- uva 572
- uva --572
- uva 572
- uva 572
- uva 572
- uva 572
- uva 572
- UVA 572
- UVA 572
- UVA 572
- uva 572 - Oil Deposits
- uva 572 - Oil Deposits
- uva 572 - Oil Deposits
- uva-572-Oil Deposits
- UVa 572 - Oil Deposits
- javascript页面刷新的几种方法
- Cocos2d 截取屏幕图像。
- SolrJ的使用
- ognl.NoSuchPropertyException
- jQuery基础笔记(1)
- uva --572
- PHP下载文件的两种方法与代码
- sql server 跨库访问
- 编辑器的一些设置__不断更新中
- 高效代码审查的十个经验
- 英:汉字转为英文 20140715
- uva--10189
- 跟我一起写 Makefile
- JPA入门