hdu 1312 Red and Black && POJ 1979 Red and Black
来源:互联网 发布:今晚美国公布什么数据 编辑:程序博客网 时间:2024/04/29 21:38
Red and Black
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1312
解题思路:
暴力直接搜就可以了,走过的地方标记一下就行了。。。
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;struct node{ int x,y;}no[450];const int dx[] = {-1,0,1,0},dy[] = {0,-1,0,1};int n,m;char maze[22][22];int vis[22][22];int cnt;void bfs(int i,int j){ memset(vis,0,sizeof(vis)); queue<node> q; node cur; cur.x = i;cur.y = j; vis[i][j] = 1; q.push(cur); while(!q.empty()){ cur = q.front(); q.pop(); cnt++; for(int i = 0; i < 4; i++){ int xx = cur.x+dx[i],yy = cur.y+dy[i]; if(xx<0 || xx >= m || yy<0 || yy >= n || maze[xx][yy] == '#' || vis[xx][yy]) continue; node tmp; tmp.x = xx;tmp.y = yy; vis[xx][yy] = 1; q.push(tmp); } /*for(int i = 0; i < m; i++) printf("%s\n",maze[i]); cout<<endl;*/ }}int main(){ while(scanf("%d%d",&n,&m),n+m){ cnt = 0; for(int i = 0; i < m; i++) scanf("%s",maze[i]); for(int i = 0; i < m; i++) for(int j = 0; j < n; j++){ if(maze[i][j] == '@'){ bfs(i,j); break; } } printf("%d\n",cnt); } return 0;}
0 0
- hdu 1312 Red and Black && POJ 1979 Red and Black
- POJ 1979 Red and Black
- poj 1979 Red and Black
- POJ 1979 - Red and Black
- POJ-1979-Red and Black
- poj 1979 red and black
- poj 1979 Red and Black
- poj 1979 Red and Black
- POJ:1979 Red and Black
- POJ 1979 - Red and Black
- POJ 1979 Red and Black
- POJ 1979 Red and Black
- POJ 1979 Red and Black
- poj 1979 Red and Black
- POJ 1979 Red and Black
- poj 1979Red and Black
- POJ 1979 Red and Black
- POJ 1979 Red and Black
- PHP 两个等号 和 三个等号的区别
- 大数据存储之分布式文件系统(一)
- 排列、组合相关知识
- 主机命令执行
- poj 2836 子集 状态压缩dp
- hdu 1312 Red and Black && POJ 1979 Red and Black
- LDAP + Gerrit搭建code review系统(二) --- LDAP
- event.target
- HDU - 1878 - 欧拉回路
- Android基础篇之Activity(四)-onSaveInstanceState()方法
- vs 检测内存泄漏
- 关系数据库还是NoSQL数据库
- https
- poj2502(SPFA+建图)