POJ NO.1979 Red and Black(DPS,搬黑砖,,,)
问题描述:
一个广场由黑砖和红砖组成,给你一个起点看你(起点算是黑砖)能办多少黑砖。
题目链接:点击打开链接
思路:
问题转换 ----> 把所有能到达的 ‘ . ’(黑砖)全换成某个字符(如‘ 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,搬黑砖,,,)相关推荐
- c语言百人搬百砖答案,C语言程序设计实验四:循环结构
C语言程序设计实验四:循环结构 1. 编写求n!的程序:要求输入n,然后计算输出n的阶乘. #include "stdio.h" void main() { long i,fac, ...
- poj 1979 Red and Black(BFS)
题意:在一个矩形房间里面被瓦片覆盖,分为白色的和红色的,白的可以走,红的不能走,起始位置在白色的瓦片上,可以上下左右移动: ".":白色的瓦片: "#":红色的 ...
- POJ 1979 Red and Black (简单dfs)
题目: 简单dfs,没什么好说的 代码: #include <iostream> using namespace std; typedef long long ll; #define IN ...
- POJ 1979 Red and Black DFS
简单DFS 注意边界就行了. // #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstd ...
- POJ 1979: Red and Black
2019独角兽企业重金招聘Python工程师标准>>> 题目在此 解题思路:直接 DFS 或 BFS 就行了. 之前被 STL 拖过后腿,偏执劲儿又上来了,这次刻意不用 std::q ...
- 怎么tp玩家_DNF:被误制裁玩家痛苦下跪,求TP为其复查:我只是在家搬个砖!...
作为一个游戏,出现了误制裁和误封还是挺正常的,放在dnf里还是个比较普遍而正常的现象,虽然现在实锤封号很多,但也制裁不是封号,是tp的自动检测,想要证明自己是误制裁,需要寻求人工复核.面对误制裁的时候 ...
- “Red and Black(红黑瓷砖),ZOJ2165”的一种解法
一.题目 1.1题目编号:ZOJ2165 详见:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2165 1.2题目描述: 有 ...
- red and black trees(红黑二叉树)
一棵高度为 h 的二叉查找树可以实现任何一种基本的动态集合操作, 如 SEARCH, PREDECESOR, SUCCESSOR, MINIMUM, MAXIMUM, INSERT, DELETE 等 ...
- 2017互联网技术人薪资报告,你搬的砖够绕地球几圈?
2017 年,互联网人的薪资状况是怎样的?为什么大多数人都在吐槽自己没有达到平均水平?高端人才的薪资真有那么令人咋舌吗?看完本文,你准备跳槽吗? 本次报告基于 Dolphin 真实案例数据和拉勾网统计 ...
最新文章
- String byte[] stream File之间的相互转换
- CocoaPods 安装与使用教程
- windows右键没有显示“文本文档”的解决办法(建议用方法二)
- ASP.NET 视频截图功能的C#代码
- Jmeter日志输出和日志级别设置
- 解决nginx端口占用问题
- docker教程_1 简介和安装
- MyEclipse could not redeploy(不能重新部署)的解决办法
- 63. Event button 事件属性
- 华为鸿蒙ota真机测试,华为鸿蒙OS 2.0测试版继续推进:新增机型一览
- shell脚本:一次读取文件的一行,并输出
- SpringSecurity视频教程
- ArduinoUNO-IRremote 红外线接收模块使用(还没写完)
- MTCNN + Deep_Sort实现多目标人脸跟踪之MTCNN人脸检测部分(一)
- UI设计中按钮如何设计,常见的按钮设计类型
- adb学习:八:多个设备时候指定操作某个设备
- 一个有趣的 5 X 5 方阵一笔画问题
- 聊聊国外LEAD最近一些情况
- java响铃_android 闹铃(响铃、震动)
- C++入门:命名空间
热门文章
- java+js实现人脸识别-基于百度api
- ftp下载怎么操作,使用教程
- 编码自动识别工具 uchardet
- 爬虫:python如何获得天气数据
- Ubuntu终端颜色全白+报错 bash: /home/dell/.bashrc: 行 144: 语法错误: 未预期的文件结尾解决办法
- win10设置虚拟内存_小技巧| 电脑经内存不够用,教你如何设置虚拟内存
- LCID表(区域设置ID表)
- nodejs+ffmpeg视频转码
- 第十九次ScrumMeeting博客
- EndNote插入文献闪退