这题其实和POJ的1979是同一道题,当时POJ使用cin写的,所以读入的时候,就很正确。

这次用scanf读入的时候,就出现了问题,我们在读完宽高之后,要用getchar吸收掉回车,然后每行末尾的回车也要用scanf吸收掉。

对于深搜函数的写法有多种,我在代码里面列了两种。

#include <cstdio>
#include <cstring>
int map[25][25];
int vis[25][25];
int sr, sc, ans, H, W;
int d[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; // void dfs(int r,int c)
// {
// ans++;
// map[r][c] = 0;
// for (int k = 0;k<4;k++) {
// int i = r + d[k][0];
// int j = c + d[k][1];
// if (i>=0&&j>=0&&i<H&&j<W&&map[i][j]) {
// dfs(i, j);
// }
// }
// } void dfs(int r,int c)
{
if (map[r][c])
ans++;
for (int i=0;i<4;i++) {
int row = r + d[i][1];
int col = c + d[i][0];
if (row>=0&&col>=0&&row<H&&col<W&&map[row][col]&&!vis[row][col]) {
vis[row][col] = 1;
dfs(row, col);
}
}
} int main()
{
char ch;
while (scanf("%d%d",&W,&H)&&W+H) {
getchar();
memset(map, 0, sizeof(map));
memset(vis, 0, sizeof(vis));
for (int i = 0; i < H;i++) {
for (int j = 0; j < W;j++) {
scanf("%c", &ch);
if (ch=='.')
map[i][j] = 1;
else if (ch=='@') {
sr = i;
sc = j;
map[i][j] = 1;
}
}
getchar();
}
// for (int i = 0; i < H;i++) {
// for (int j = 0; j < W;j++) {
// printf("%d", map[i][j]);
// }
// printf("\n");
// }
ans = 0;
vis[sr][sc] = 1;
dfs(sr,sc);
printf("%d\n", ans);
}
return 0;
}

HDU-1312-Black and Red的更多相关文章

  1. HDU 1312 Red and Black --- 入门搜索 BFS解法

    HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...

  2. HDU 1312 Red and Black --- 入门搜索 DFS解法

    HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...

  3. HDU 1312:Red and Black(DFS搜索)

      HDU 1312:Red and Black Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & ...

  4. HDU 1312 Red and Black(bfs,dfs均可,个人倾向bfs)

    题目代号:HDU 1312 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 Red and Black Time Limit: 2000/100 ...

  5. HDU 1312 Red and Black (dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 Red and Black Time Limit: 2000/1000 MS (Java/Oth ...

  6. HDU 1312 Red and Black(DFS,板子题,详解,零基础教你代码实现DFS)

    Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  7. HDU 1312 Red and Black(最简单也是最经典的搜索)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1312 Red and Black Time Limit: 2000/1000 MS (Java/Oth ...

  8. HDU 1312 Red and Black(经典DFS)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 一道很经典的dfs,设置上下左右四个方向,读入时记下起点,然后跑dfs即可...最后答 ...

  9. HDU 1312 Red and Black (DFS & BFS)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 题目大意:有一间矩形房屋,地上铺了红.黑两种颜色的方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相 ...

  10. hdu 1312 Red and Black

    Problem Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...

随机推荐

  1. python的正则表达式支持(链接)

    http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

  2. python 基础(六) 推导式

    列表推导式 概念:提供了一种创建列表的简单快速的途径 (1) 一般形式 myList = [x for x in range(10)] ​ #分解后 myList = [] for x in rang ...

  3. Codeforces Round #532(Div. 2) B.Build a Contest

    链接:https://codeforces.com/contest/1100/problem/B 题意: 给n,m. 给m个数,每个数代表一个等级,没给一个将其添加到题目池中,当题目池中有难度(1-n ...

  4. Hungary Algorithm国外板子

    Codeforces 1107一题除了dp做法还有二分带权匹配O(n^3)做法,国外网友的板子时间非常优秀,但矩阵设定的事情并不是很懂-- //Codeforces 1107F const int m ...

  5. YII报错笔记:<pre>PHP Notice &#039;yii\base\ErrorException&#039; with message &#039;Uninitialized string offset: 0&#039; in /my/test/project/iot/vendor/yiisoft/yii2/base/Model.php:778

    YII常见报错笔记 报错返回的代码如下: <pre>PHP Notice 'yii\base\ErrorException' with message 'Uninitialized str ...

  6. centOS6.5 usr/src/kernels下为空

    用uname -r查看内核版本为 2.6.32-431.el6.x86_64 usr/src/kernels下为空 需要执行两个安装 yum install kernel-headers yum in ...

  7. python入门之数据类型之列表、元组、字典

    list 格式: test_list = ["a",123,[1,"b"]] 索引: >>>print(test_list[0]) " ...

  8. [已读]JavaScript高级程序设计(第3版)

    从去年开始看,因为太长,总是没有办法一口气把它看完,再加上它与第二版大部分一致,读起来兴致会更缺一点. 与第二版相比,它最大的改变就是增加了很多html5的内容,譬如:Object对象的一些新东西,数 ...

  9. 17999 Light-bot 模拟 + kmp求循环节

    http://acm.scau.edu.cn:8000/uoj/mainMenu.html 17999 Light-bot 时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 ...

  10. Centos 7.5源码编译安装zabbix4.0报fatal error: mysql.h: No such file or directory

    系统环境:CentOS 7.5是最小化安装的 编译信息 编译选项: root@Server01 zabbix-]# ./configure --prefix=/usr/share/applicatio ...