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

".":白色的瓦片;

"#":红色的瓦片;

"@":起始位置;

计算可以移动到的白色瓦片的数量;

思路:bfs搜索,设一个变量sum记录,进队就自加;

代码如下:

#include <iostream>
#include <cstdio>
#include <memory.h>
#include <queue>
using namespace std;
char map_[25][25];
int w,h;
struct Node{int x,y;
};
int vis[25][25];
int ax[4] = {-1,0,1,0};
int ay[4] = {0,1,0,-1};
int BFS(Node no){queue<Node> mq;while(!mq.empty()){mq.pop();}mq.push(no);vis[no.x][no.y] = 1;int sum = 0;while(!mq.empty()){Node de = mq.front();mq.pop();sum++;for(int i=0;i<4;i++){Node d = de;d.x =de.x+ax[i];d.y =d.y+ay[i];if(vis[d.x][d.y]==0&&d.x>=0&&d.x<h&&d.y>=0&&d.y<w&&map_[d.x][d.y]=='.'){vis[d.x][d.y] = 1;mq.push(d);}}}return sum;
}int main()
{while(~scanf("%d%d",&w,&h)){if(w==0&&h==0)return 0;int x,y;memset(map_,0,sizeof(map_));memset(vis,0,sizeof(vis));for(int i=0;i<h;i++){scanf("%s",map_[i]);for(int j=0;map_[i][j];j++){if(map_[i][j]=='@'){x = i;y = j;}}}Node no;no.x = x;no.y = y;int a = BFS(no);printf("%d\n",a);}return 0;
}

转载于:https://www.cnblogs.com/hnzyyTl/p/4841706.html

poj 1979 Red and Black(BFS)相关推荐

  1. POJ 1979: Red and Black

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

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

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

  3. POJ 1979 Red and Black DFS

    简单DFS 注意边界就行了. // #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstd ...

  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 3278 Catch That Cow BFS

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 32071   Accepted: 9866 D ...

  8. poj 2251 Dungeon Master (三维bfs)

    http://poj.org/problem?id=2251 简单bfs,只不过是三维的... 唯一的坑点在输出上... Escaped in %d minute(s) 这意思是答案为1输出minut ...

  9. POJ - 3126 - Prime Path(BFS)

    Prime Path POJ - 3126 题意: 给出两个四位素数 a , b.然后从a开始,每次可以改变四位中的一位数字,变成 c,c 可以接着变,直到变成b为止.要求 c 必须是素数.求变换次数 ...

最新文章

  1. mysql 清空row_MySQL_TRUNCATE_清空table里的记录
  2. 两条曲线所围成的面积_人教版数学六年级上册 5.3:圆的面积(一) 微课视频|知识点|课件解析|同步练习...
  3. Matlab回归分析regress和polyfit
  4. LeetCode--33. 搜索旋转排序数组(二分法)
  5. php yaf 教程,干货:PHP YAF框架实践教程——配置与多模块
  6. Bitcoin是什么意思
  7. 2017-07-12(数据库)
  8. 追赶法matlab算法,追赶法matlab程序
  9. 数论基础(浅谈数论的部分实现)
  10. Dell Precision M4800 AppleALC声卡驱动修复教程
  11. MATLAB计算图片的标准差与方差 MEAN STD
  12. UC3842好坏的判断方法
  13. java天才_哪个天才写的?太精辟了
  14. SQL Server2005 只有配置工具,而没有查询分析器、企业管理器的解决方法
  15. 移动端web设计尺寸_手机移动端网页按钮设计尺寸及间距规范
  16. 界面美化 —— 布局
  17. 华为鸿蒙系统小窗口,mate30pro升鸿蒙后小窗应用调不出来
  18. 用Python做一个好玩的朋友圈九宫格抽奖
  19. 6-1 Person类
  20. ThinkPHP根据时间显示不同的问候语

热门文章

  1. 系统故事 --- 让系统讲故事
  2. 敏捷DoD完成定义的多种形态
  3. 在Flutter中设置更好的Logging的指南
  4. 4、SpringBoot 配置和使用定时任务
  5. 用java画一个网格_用SolidWorks画一个空心挂钩,这种画法稍微有点麻烦
  6. Java GUI:将JPanel添加进JScrollPane
  7. 使用centos7构建本地git服务器
  8. 算法题解:最小编辑距离(动态规划算法)
  9. mysql校对规则设计编码命令
  10. Checkstyle 简介 以及各版本下载地址