原题

Red and Black

题意:

只走黑砖,不走红砖,最多能走多少 黑砖。

有一个长方形的房间,覆盖了正方形的磁砖。每块磁砖的颜色,要么是红色,要么是黑色。一名男子站在一块黑色的磁砖上。他      可以从一块磁砖移至相邻四块磁砖中的某一块。但是,他不允许在红色磁砖上移动,他只允许在黑色磁砖上移动。

输入

输入由多个数据集组成。数据集的起始行包含了两个正整数 W 和 H;W 和 H 分别是 x- 和 y- 方向的磁砖数量。W 和 H 不超过 20

'  .  '      一块黑色的磁砖 
' # '     一块红色的磁砖 
'@'    一名男子,站在一块黑色磁砖上 (在一个数据集中,恰好出现一次)

输出

他从初始磁砖所能抵达的磁砖数量(包括初始位置)。

Input11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..

Output

6

解题思路:

从初始位置开始,对临近坐标遍历,直到出界或无路可走。

#include<cstdio>
#include<iostream>
using namespace std;
char a[24][24];
int dx[4] = {1,-1,0,0};  // 向4个方向走
int dy[4] = {0,0,1,-1};
int w,h;
int sum = 0;
void dfs(int p,int q){a[p][q] = '#';   // 走过的地方 进行标记sum++;int nx,ny;for(int i = 0;i < 4;i++){nx = p + dx[i];ny = q + dy[i];if(a[nx][ny] == '.' && p >= 0 && q >= 0 && nx < h && ny < w){   // 当周围点为 . 时并且没有出界 dfs(nx,ny);  // 以上一个点 nx,ny 为起点 继续向4个方向走}}return ;
}
int main(){while(scanf("%d%d",&w,&h) != EOF){int n,m;if(w == h && w == 0){break;}for(int i = 0;i < h;i++){for(int j = 0;j < w;j++){cin>>a[i][j];}}for(int i = 0;i < h;i++){for(int j = 0;j < w;j++){if(a[i][j] == '@'){    // 从 初始位置开始dfs(i, j);}}}printf("%d\n",sum);sum = 0;}return 0;
}

Red and Black 红与黑 POJ 1979 深度搜索算法相关推荐

  1. 深度搜索算法(DFS)

    深度搜索算法(DFS) 提示:大家听到搜索二字,脑子里面是不是便会出现高大山的词语,今天小编就以最简单方式带大家入门. 简单解释: ----显然小编不是概念的搬运工------------------ ...

  2. 深度搜索算法查找最短路径

    如图,百度地图上有5个地点,各个地点间是单向的路径,试求出从1到5的最短路径. 从图中可以得到一个5*5的二维矩阵,利用深度搜索算法,求出最短路径.从最后的运行结果,可以直观的看出搜索的过程 代码实现 ...

  3. 深度搜索算法C语言实现--以走迷宫为例

    深度搜索算法是沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点.这一过程一直进行到已发现从源节点可达的所有节点为止.如果还存在未 ...

  4. 深度搜索算法(python实现)获取所有叶子节点到根节点的路径

    深度搜索算法(python实现)获取所有叶子节点到根节点的路径 1. 目标 对于下图中的树结构,遍历输出所有叶子节点到根节点的路径. 2. 实现方式 Python代码如下: # -*- coding: ...

  5. 算法思想-深度搜索算法-leetcode相关题目总结

    通过这篇文章你能学到什么 搜索算法 深度优先搜索 分析过程 实现代码 进出栈过程示意图 DFS算法应用-Leetcode相关题目 Leetcode 78 Subsets Leetcode 90 Sub ...

  6. POJ 1979 红与黑

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

  7. poj 1979 Red and Black(BFS)

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

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

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

  9. POJ 1979 Red and Black DFS

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

最新文章

  1. 当年修复Linux启动菜单的笔记
  2. 周一02.1编程语言介绍
  3. python快速排序解析_快速排序python实现总结
  4. Protobuf 安装及 Python、C# 示例
  5. 当我们在谈论HTTP缓存时我们在谈论什么
  6. 浅入浅出深度学习理论实践
  7. 图论:柯尼斯堡桥问题、艾科西亚游戏
  8. ACCESS的十种数据类型分别对应的添加语句
  9. 开启Hadoop/Yarn的日志监控功能,配置Spark历史服务,解决web端查看日志时的Java.lang.Exception:Unknown container问题
  10. 2017年3月21日
  11. Java基础知识点总结归纳,超级全面!(2021版)
  12. 计算机的桌面图标不见,桌面图标不见了怎么办,小编教你电脑桌面图标不见了怎么办...
  13. 聚类算法(4)--Hierarchical clustering层次聚类
  14. WZOI-261疯狂吃鸡腿2
  15. GRUB4DOS详解
  16. 台式电脑计算机风机,笔记本冷却风扇与台式计算机CPU风扇的质量,类型和区别...
  17. sqoop job 作业
  18. 有人这样评价Ruby,你赞同他的观点吗?
  19. itext html to pdf设置边距,iText:设置边距是否有效?
  20. 实现html语句的循环

热门文章

  1. 有些网站打开一半空白_如何发一条空白的朋友圈
  2. 设备树学习(二十六、番外篇-中断子系统之CMWQ概述[2])
  3. Vue+Spring Boot 前后端分离的商城项目开源啦!
  4. [渝粤教育] 西南科技大学 物流学基础 在线考试复习资料
  5. 生猪屠宰HACCP 计划验证程序
  6. 华为补偿10亿元鼓励7000员工辞职
  7. Bulletproofs用于verifiable shuffle随机组合证明
  8. 西交利物浦计算机分数,西交利物浦大学录取分数线2021是多少分(附历年录取分数线)...
  9. wps找回丢失的文档
  10. 如何快速有效的发散思维