问题描述:

一个广场由黑砖和红砖组成,给你一个起点看你(起点算是黑砖)能办多少黑砖。

题目链接:点击打开链接

思路:

问题转换 ----> 把所有能到达的 ‘ . ’(黑砖)全换成某个字符(如‘ e ’);

先找到起点,题目中没给出需要自己遍历数组找到,然后以此为起点,进行替换(把‘ . ’换成‘ e ’要用到DFS);

最后再遍历数组计算出所有的‘ e ’的个数即可。

代码:

#include<iostream>
#include<cstdio>using namespace std;const int MAX = 10086;
int W, H;//列数和行数
char field[MAX][MAX];
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};//移动的四个方向void DFS(int x, int y);int main(){while(~scanf("%d%d", &W, &H)){int m, n, cnt = 0;if(W == 0 && H == 0) break;for(int i = 0; i < H; i++)scanf("%s", field[i]);//找到开始的坐标for(int i = 0; i < H; i++)for(int j = 0; j < W; j++){if(field[i][j] == '@'){m = i, n = j;}}DFS(m, n);//进行替换for(int i = 0; i < H; i++)for(int j = 0; j < W; j++)if(field[i][j] == 'e')cnt++;cout << cnt << endl;}return 0;
}void DFS(int x, int y){field[x][y] = 'e';for(int i = 0; i < 4; i++){//nx, ny分别代表移动后的坐标int nx = x + dx[i], ny = y + dy[i];if(0 <= nx && nx < H && 0 <= ny && ny < W &&field[nx][ny] == '.'){DFS(nx, ny);}}
}

POJ NO.1979 Red and Black(DPS,搬黑砖,,,)相关推荐

  1. c语言百人搬百砖答案,C语言程序设计实验四:循环结构

    C语言程序设计实验四:循环结构 1. 编写求n!的程序:要求输入n,然后计算输出n的阶乘. #include "stdio.h" void main() { long i,fac, ...

  2. poj 1979 Red and Black(BFS)

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

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

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

  4. POJ 1979 Red and Black DFS

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

  5. POJ 1979: Red and Black

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

  6. 怎么tp玩家_DNF:被误制裁玩家痛苦下跪,求TP为其复查:我只是在家搬个砖!...

    作为一个游戏,出现了误制裁和误封还是挺正常的,放在dnf里还是个比较普遍而正常的现象,虽然现在实锤封号很多,但也制裁不是封号,是tp的自动检测,想要证明自己是误制裁,需要寻求人工复核.面对误制裁的时候 ...

  7. “Red and Black(红黑瓷砖),ZOJ2165”的一种解法

    一.题目 1.1题目编号:ZOJ2165 详见:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2165 1.2题目描述: 有 ...

  8. red and black trees(红黑二叉树)

    一棵高度为 h 的二叉查找树可以实现任何一种基本的动态集合操作, 如 SEARCH, PREDECESOR, SUCCESSOR, MINIMUM, MAXIMUM, INSERT, DELETE 等 ...

  9. 2017互联网技术人薪资报告,你搬的砖够绕地球几圈?

    2017 年,互联网人的薪资状况是怎样的?为什么大多数人都在吐槽自己没有达到平均水平?高端人才的薪资真有那么令人咋舌吗?看完本文,你准备跳槽吗? 本次报告基于 Dolphin 真实案例数据和拉勾网统计 ...

最新文章

  1. String byte[] stream File之间的相互转换
  2. CocoaPods 安装与使用教程
  3. windows右键没有显示“文本文档”的解决办法(建议用方法二)
  4. ASP.NET 视频截图功能的C#代码
  5. Jmeter日志输出和日志级别设置
  6. 解决nginx端口占用问题
  7. docker教程_1 简介和安装
  8. MyEclipse could not redeploy(不能重新部署)的解决办法
  9. 63. Event button 事件属性
  10. 华为鸿蒙ota真机测试,华为鸿蒙OS 2.0测试版继续推进:新增机型一览
  11. shell脚本:一次读取文件的一行,并输出
  12. SpringSecurity视频教程
  13. ArduinoUNO-IRremote 红外线接收模块使用(还没写完)
  14. MTCNN + Deep_Sort实现多目标人脸跟踪之MTCNN人脸检测部分(一)
  15. UI设计中按钮如何设计,常见的按钮设计类型
  16. adb学习:八:多个设备时候指定操作某个设备
  17. 一个有趣的 5 X 5 方阵一笔画问题
  18. 聊聊国外LEAD最近一些情况
  19. java响铃_android 闹铃(响铃、震动)
  20. C++入门:命名空间

热门文章

  1. java+js实现人脸识别-基于百度api
  2. ftp下载怎么操作,使用教程
  3. 编码自动识别工具 uchardet
  4. 爬虫:python如何获得天气数据
  5. Ubuntu终端颜色全白+报错 bash: /home/dell/.bashrc: 行 144: 语法错误: 未预期的文件结尾解决办法
  6. win10设置虚拟内存_小技巧| 电脑经内存不够用,教你如何设置虚拟内存
  7. LCID表(区域设置ID表)
  8. nodejs+ffmpeg视频转码
  9. 第十九次ScrumMeeting博客
  10. EndNote插入文献闪退