简单DFS

注意边界就行了。

// #pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<sstream>
#include<cmath>
#include<climits>
#include<string>
#include<map>
#include<queue>
#include<vector>
#include<stack>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define pb(a) push_back(a)
#define INF 0x1f1f1f1f
#define lson idx<<1,l,mid
#define rson idx<<1|1,mid+1,rvoid debug()
{
#ifdef ONLINE_JUDGE
#elsefreopen("d:\\in.txt","r",stdin);freopen("d:\\out1.txt","w",stdout);
#endif
}
char getch()
{char ch;while((ch=getchar())!=EOF){if(ch!=' '&&ch!='\n')return ch;}return EOF;
}
char da[25][25];
int n,m;
int num;
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
int vis[25][25];
int dfs(int x,int y)
{vis[x][y]=1;num++;for(int d=0;d<4;d++){int nx=x+dx[d],ny=y+dy[d];if(da[nx][ny]=='.'&&!vis[nx][ny]&&nx>=1&&nx<=n&&ny>=1&&ny<=m)dfs(nx,ny);}return 0;
}
int main()
{while(scanf("%d%d",&m,&n)!=EOF&&(n||m)){for(int i=1; i<=n; i++)scanf("%s",da[i]+1);num=0;int bx,by;for(int i=1; i<=n; i++)for(int j=1; j<=m; j++){if(da[i][j]=='@'){bx=i;by=j;break;}}memset(vis,0,sizeof(vis));dfs(bx,by);printf("%d\n",num);}return 0;
}

View Code

转载于:https://www.cnblogs.com/BMan/p/3238104.html

POJ 1979 Red and Black DFS相关推荐

  1. POJ 1979 Red and Black (简单dfs)

    题目: 简单dfs,没什么好说的 代码: #include <iostream> using namespace std; typedef long long ll; #define IN ...

  2. POJ 1979: Red and Black

    2019独角兽企业重金招聘Python工程师标准>>> 题目在此 解题思路:直接 DFS 或 BFS 就行了. 之前被 STL 拖过后腿,偏执劲儿又上来了,这次刻意不用 std::q ...

  3. poj 1979 Red and Black(BFS)

    题意:在一个矩形房间里面被瓦片覆盖,分为白色的和红色的,白的可以走,红的不能走,起始位置在白色的瓦片上,可以上下左右移动: ".":白色的瓦片: "#":红色的 ...

  4. Red and Black 红与黑 POJ 1979 深度搜索算法

    原题 Red and Black 题意: 只走黑砖,不走红砖,最多能走多少 黑砖. 有一个长方形的房间,覆盖了正方形的磁砖.每块磁砖的颜色,要么是红色,要么是黑色.一名男子站在一块黑色的磁砖上.他  ...

  5. POJ NO.1979 Red and Black(DPS,搬黑砖,,,)

    问题描述: 一个广场由黑砖和红砖组成,给你一个起点看你(起点算是黑砖)能办多少黑砖. 题目链接:点击打开链接 思路: 问题转换 ----> 把所有能到达的 ' . '(黑砖)全换成某个字符(如' ...

  6. POJ 1979 红与黑

    题目地址: http://poj.org/problem?id=1979  或者  https://vjudge.net/problem/OpenJ_Bailian-2816 Red and Blac ...

  7. poj 1321 棋盘问题(dfs)

    题目:http://poj.org/problem?id=1321 没什么难度,比较水... View Code 1 #include <iostream> 2 #include<c ...

  8. POJ 3087 Shuffle'm Up DFS

    link:http://poj.org/problem?id=3087 题意:给你两串字串(必定偶数长),按照扑克牌那样的洗法(每次从S2堆底中拿第一张,再从S1堆底拿一张放在上面),洗好后的一堆可以 ...

  9. 数据结构——HDU1312:Red and Black(DFS)

    题目描述 There is a rectangular room, covered with square tiles. Each tile is colored either red or blac ...

最新文章

  1. android源码分析-深入MessageQueue
  2. Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.
  3. AngularJs 常用指令标签
  4. 设计有三个窗口的框架结构网页_技术周刊丨钢框架结构直接分析设计与传统设计方法对比研究——恒荷载作用结果对比...
  5. Linux增加开放端口号
  6. Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
  7. 东航期货模拟交易brockerid(期货公司的客户号)
  8. 2个维度5大方法,让你的微服务在K8s上跑起来
  9. 限制textarea的输入字数
  10. jquery easyui 表单结合对话框
  11. java教师考勤系统,javaweb课堂考勤管理系统
  12. ab 测试工具(Linux Windows)
  13. 微服务架构的理论基础 - 康威定律
  14. windows中如何识别RTL8111B/8111C/8111D/8111E/8111F网卡 转自网络
  15. 腾讯云短信服务申请+测试
  16. 时间换算 将毫秒换算成时间
  17. python中做为词云轮廓的图片,Python如何生成词云图片
  18. java引_JAVA中的引用
  19. 关于主从复制的超详细解析(全)
  20. 疫情数据可视化01---中国疫情时间序列数据整理(截至7月30号)

热门文章

  1. Python 集合(set) 介绍
  2. error: Microsoft Visual C++ 14.0 is required.
  3. vs2008试用期到期解决办法
  4. IBatisNet + Castle 开发相关文章
  5. python列表冒号逗号常规用法
  6. Windows 95被做成了一款软件,可玩扫雷和纸牌
  7. 面试了8家公司,他们问了我这些机器学习题目……
  8. python traceback most recent_pyspider启动错误: Traceback (most recent call last):
  9. crystal ball 软件_推荐10个堪称神器的软件工具
  10. 回答面试官:如何保证消息不丢失