题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312

  第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间。

  题目大意:从图中的标记'@'开始,向四个相邻的方向找黑色瓷片'.' ,统计能经过的黑色瓷片的数目('@'也算统计中的一个),当然,这个人是不能走红色瓷片'#'的。

有两个地方需要注意:1、要分清w、h,哪一个对应行,哪一个表示列,非常别扭,最好不要按它的(w:列 h:行)     2、统计符合条件的 '.' 时,不要遗漏了对初始位置'@'的统计。

总结: 细心真的非常非常重要!!!!

 1 #include <iostream>
 2 using namespace std;
 3
 4 char map[25][25];
 5 int h, w, num;
 6
 7 void dfs(int i, int j)
 8 {
 9     if (map[i][j] != '.' || i < 0 || j < 0 || i >= h || j >= w)
10         return;
11     else
12     {
13         num++;      //找到'.'就统计
14         map[i][j] = '#';
15         dfs(i-1, j);
16         dfs(i, j+1);
17         dfs(i+1, j);
18         dfs(i, j-1);
19     }
20 }
21
22 int main()
23 {
24     int i, j, k, l;
25     while (cin >> w >> h && (w || h))
26     {
27         num = 0;
28         for (i = 0; i < h; i++)    //h的位置之前写成了w,
29         {
30             for (j = 0; j < w; j++)  //w的位置之前写成了h,下面的for语句也是这样,找了很久才发现这个bug
31
32                 cin >> map[i][j];
33         }
34         for (i = 0; i < h; i++)
35         {
36             for (j = 0; j < w; j++)
37             {
38                 if (map[i][j] == '@')
39                 {
40                     map[i][j] = '.';
41                     dfs(i, j);
42                 }
43             }
44         }
45         cout << num << endl;
46     }
47     return 0;
48 }

转载于:https://www.cnblogs.com/windysai/archive/2013/04/22/3036626.html

hdu 1312 Red and Black 解题报告相关推荐

  1. 杭电 HOJ 1312 Red and Black 解题报告

    搜索,bfs.依旧用队列做.边界处懒得处理,全部初始化为-1.当然,0也可以.AC代码如下: #include<iostream> #include<deque> using ...

  2. Hdu 1312 Red and Black

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 //极其简单的dfs #include<iostream> using namesp ...

  3. hdu 1022 Train Problem I 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022 其实是一道上数据结构课讲过的例题  只不过当时讲的是怎么用手算  一道水题又花了好长时间 其实就 ...

  4. HDU 4383 To The Moon 解题报告

    HDU 4383 To The Moon 题意翻译 已知一个长为\(n\)的序列\(a\),你需要进行下面的四种操作. C l r d 将区间\([l,r]\)中的数加上\(d\),同时时间加\(1\ ...

  5. hdu 2049 不容易系列之(4)——考新郎 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 写这篇解题报告时 我真的很气愤 对自己又一次犯下低级错误改了两个小时 int型的数据居然用%I6 ...

  6. hdu 2058 解题报告 - The sum problem

    hdu 2058 解题报告 - The sum problem 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2058 等差求和公式: Sn=(a1+aN ...

  7. 解题报告 (十四) 数位DP

    文章目录 数位DP 解题报告 HDU 4722 Good Numbers HDU 2089 不要62 HDU 3555 Bomb HDU 3652 B-number PKU 3252 Round Nu ...

  8. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  9. 解题报告(一)F、(2018 ACM - ICPC shenyang I)Distance Between Sweethearts(数学期望 + 乘法原理 + FWT)(4.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. Linux之SSH协议知识点总结
  2. MNIST 训练测试
  3. ViewFlipper的使用
  4. java 获取麦克_Java Sound API-捕获麦克风
  5. nodejs 的序列化与反序列化
  6. C和指针之动态内存分配常见问题和总结
  7. 8086条件转移指令JE,JZ
  8. 【Java】《基于Java的面向对象范式》学习笔记分享
  9. 【AI面试题】Kmeams算法流程以及Kmeans++介绍
  10. HttpURLConnection与HttpClient提交FORM表单参数请求工具类
  11. 按键精灵注册服务器,按键精灵网页注册脚本教程
  12. 【WP 8.1开发】如何把自定义字体塞进应用里
  13. MAX30102心率血样模块在STM32F103芯片的程序说明
  14. 工作类书籍之计算机相关
  15. 安卓变苹果12系统永久,安卓系统变苹果系统2020
  16. android xp,安卓手机刷xp系统装机版xp
  17. Linux网卡驱动分析
  18. Excel#整体增加相同行高的宏命令#
  19. ueditor+实现word图片自动上传
  20. elixir添加erlang模块

热门文章

  1. 2022-2028年中国大飞机项目产业链分析及投资咨询报告
  2. struts2 与 sping 整合 控制器中 service注入的问题
  3. Go 知识点(18)— 条件编译(编译标签、文件后缀)
  4. Redis 笔记(01)— 安装、启动配置、开启远程连接、设置密码、远程连接
  5. vmware虚拟机怎么让窗口自动调整大小适应主机
  6. 谷歌BERT预训练源码解析(三):训练过程
  7. LeetCode简单题之合并两个链表
  8. 回归算法分类,常用回归算法解析
  9. 使用TENSORRT和NVIDIA-DOCKER部署深部神经网络
  10. 编译器设计-RunTime运行时环境