题目地址:http://noi.openjudge.cn/ch0205/1818/

题目:求地图中能到达的黑砖总数

一开始没有思路,参考了:http://blog.csdn.net/c20190102/article/details/52329390

思路:简单搜索

使用二维数组保存地图,找到起始位置,从起始位置开始上下左右搜索,直到不满足条件(撞墙或者超出地图),满足条件的位置计数加1,计数值即为所求。

#include "iostream"
#include "vector"
using namespace std;
int blackCount = 0;
void searchMap(vector<vector<char>>&map,int posX,int posY,int w,int h,int &blackCount)
{if(posX<0 || posY<0 || posX>=h || posY>=w || map[posX][posY]=='#')return;//能到这是,说明该位置是符合位置的黑砖,计数加1blackCount++;//将该位置为不可达map[posX][posY] = '#';//向上searchMap(map,posX,posY-1,w,h,blackCount);//向下searchMap(map,posX,posY+1,w,h,blackCount);//向左searchMap(map,posX-1,posY,w,h,blackCount);//向右searchMap(map,posX+1,posY,w,h,blackCount);}
int main()
{while(1) {int w, h;cin >> w >> h;if(w==0&&h==0)return 0;vector<vector<char>> vc(22, vector<char>(22));  //定义二维数组用来存储地图for (int i = 0; i < h; i++) {for (int j = 0; j < w; j++) {char inC;cin >> inC;vc[i][j] = inC;//vc[i][j]需要声明二维数组长度,否则要用push_back}}//找到起始位置int x = 0, y = 0; //x行 y列 从0开始for (int i = 0; i < h; i++) {for (int j = 0; j < w; j++) {if(vc[i][j] == '@'){x = i;y = j;break;}}}//寻找,上下左右搜索直至撞墙或超出地图searchMap(vc, x, y, w, h, blackCount);cout << blackCount << endl;//不要忘记在下一次循环前清空二维数组vc.clear();//不要忘记在下一次循环前将blackCount归零blackCount = 0;}
}

NOI 1818:红与黑(C++)相关推荐

  1. 信息学奥赛一本通 1216:红与黑 / OpenJudge NOI 2.5 1818

    [题目链接] ybt 1216:红与黑 OpenJudge NOI 2.5 1818:红与黑 [题目考点] 1. 连通块问题 2. 深搜/广搜 [解题思路] 1. 深搜 从第一个格子出发,遍历所有可以 ...

  2. 中国电子学会五级C++考试秘籍

     考题范围: 2.5基本算法之搜索(36题) 2.4基本算法之分治(7题) 4.6算法之贪心(23题) 考点: 中国电子学会五级考点详解(一)-string类型字符串_mooczhimahu-的博客- ...

  3. NoiOpenjudge水题选刷之_搜索

    1789:算24 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式.现在的问题是,是否存在一种方式使得得到的表达式的结果等于24. 这里加减乘除以及括号的运 ...

  4. 【c++算法篇】--30分钟从0到精通讲解算法--搜索

    c++搜索算法---详解 搜索算法概念 具体实现 深度优先搜索(dfs) 原理/思路 实现过程 例题 题目1 题目2 题目3 题目4 AC代码+思路详解 题目1 题目2 题目3 题目4 广度优先搜索( ...

  5. OI模板大全(普及~省选NOI)

    整理的算法模板合集: ACM模板 hhh刚从某位大佬的洛谷首页偷到了一个好玩的东西 大佬在这儿 自己对照了一下原来我还有这么多东西没有学呜呜呜我好菜 普及- 模板大全续表续表A并查集A快速幂-取余运算 ...

  6. 【noi 2.5_7834】分成互质组(dfs)

    有2种dfs的方法: 1.存下每个组的各个数和其质因数,每次对于新的一个数,与各组比对是否互质,再添加或不添加入该组. 2.不存质因数了,直接用gcd,更加快.P.S.然而我不知道为什么RE,若有好心 ...

  7. 月薪 5 万清华姚班 NOI 金牌得主在线征友被群嘲,当代互联网相亲有多难

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 近日,山西某网友在豆瓣发布征友帖掀起了轩然大波,一些网友对其进行了无情的谩骂和侮辱,有网友评价其"精神贫瘠" ...

  8. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  9. noi 2728 摘花生

    题目链接: 很像上一题,加上自己本身,选最优值. http://noi.openjudge.cn/ch0206/2728/ http://paste.ubuntu.com/23402493/ 转载于: ...

  10. 【CodeVS 1540】银河英雄传说 2002年NOI全国竞赛

    noi这么水? 很久没有自己不看题解A题了 ~~~~~~ 带权并查集! CodeVS的数据不合规定??有乱七八糟的字符?? 见我注释掉的读入![刚又测试 洛谷用被注释掉的那一句也可以A 说明CadeV ...

最新文章

  1. python map lambda 分割字符串_python之lambda、filter、map、reduce的用法说明(基于python2)...
  2. spring boot实战(第七篇)内嵌容器tomcat配置
  3. php post 渲染数据,php 程序内部post数据实现方法
  4. CNN中的卷积操作的参数数计算
  5. 处理字符串_4_计算某个字符出现的次数
  6. poj 1144 割点和桥
  7. java怎么系统输入数字_java怎么输入数字,这些经验不可多得
  8. 群晖NAS删除文件不释放空间的原因和方法
  9. Luogu1169 [ZJOI2007]棋盘制作
  10. python 爬虫库 u_9个用来爬取网络站点的 Python 库
  11. 清空oracle的注册表,Oracle中清除注册表
  12. 微信应用开发简单示例,学生自助报道系统
  13. NI CompactRIO、labview在车载数据采集中的应用
  14. 理查德•弗曼学习法思维导图-程序猿学习法
  15. 深入浅出Mybatis系列(五)Mybatis事务篇
  16. 宋立波:让子弹飞和云安全
  17. 记录各大吃播饭店地址
  18. RangerClient简介
  19. 最近发现一个很好的网站-夏泽网,超链接如下:
  20. 远程连接服务器突然失败

热门文章

  1. Unity - Timeline 之 Nesting Timeline instances(嵌套的Timeline实例)
  2. ceph存储 FC HBA、iSCSI HBA、以太网卡3者区别
  3. Hashmasks背后的故事:以太坊上最牛艺术品诞生之路
  4. 实现一个多线程安全的单向有序链表,add单个结点、与其他链表合并
  5. 一些触动人心的动效设计欣赏
  6. 修身齐家治国平天下 读 战国策 和 编程卓越之道 有感
  7. ELK——Kibana 安装使用性能监控工具 APM
  8. 技术类—Java笔试题2018
  9. c语言factors函数的意思,factors是什么意思_factors的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. java 生成雷达图,生成echarts雷达图并传到Server端生成图片