题目描述:

  每组数据给你一张字符的图,'@'代表起点,'.'代表可走的路,'#'代表墙,求从起点出发,可到达的位置的数量,包括起点。

思路:

  dfs基础题,从起始点开始,每一次所在的点,只要不出界并且字符为'@'或'.',则把这个点的字符改为一个标志,再向四周扩散。如果出了边界或者遇到'#',则这条路到尽头。

  最后只要遍历整张图,统计标志的数量即可。

  好像有点不道德,直接把原图修改了= =

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
string a[];
int H,W,dir[][] ={{,-},{,},{,},{-,}}; void dfs(int x,int y)
{
if(x < || x >= H || y < || y >= W) return;
if(a[x][y] == '.' || a[x][y] == '@')
{
a[x][y] = '';
for(int i = ;i < ;i++)
{
int xx = x+dir[i][],yy = y+dir[i][];
dfs(xx,yy);
}
}
} int main()
{
while(cin >> W >> H && W && H)
{
int beginx,beginy; for(int i = ;i < H;i++)
{
cin >> a[i];
}
for(int i = ;i < H;i++)
{
for(int j = ;j < W;j++)
{
if(a[i][j] == '@')
{
beginx = i;
beginy = j;
}
}
}
dfs(beginx,beginy);
int sum = ;
for(int i = ;i < H;i++)
{
for(int j = ;j < W;j++)
{
if(a[i][j] == '') sum++;
}
}
cout << sum << endl;
}
return ;
}

POJ_1979_dfs的更多相关文章

随机推荐

  1. Mybatis-plus 实体类继承关系 插入默认值

    在实际开发中,会定义一些公共字段,而这些公共字段,一般都是在进行操作的时候由程序自动将默认值插入.而公共的字段一般会被封装到一个基础的实体类中,同时实体类中会实现相应的getter setter 方法 ...

  2. 【记】创建 VirtualBoxClient COM 对象失败. 应用程序将被中断

    1. 在本地64位win7系统安装VirtualBox完,启动时提示错误 原因:兼容性造成的 按照下图显示修改VirtualBox快捷方式的兼容性 2. 启动虚拟机时,提示 点击弹出框的确定按钮后,接 ...

  3. vs删除空白行 注释

    在vs编辑器中有时需要批量删除无用的空白行,为此,可以使用vs编辑器的查找替换功能: 1. Ctrl+H,打开替换功能框. 2.选择“使用正则表达式”,“当前文档”. 3.在查找框中输入: (?< ...

  4. python中end=''

    end = ''  用于连接下一条的print输出内容 效果图: 代码: # end='' 用于连接下一条输出语句 print('哈哈哈') print('嘻嘻嘻') print('\n\n') pr ...

  5. Spring Boot2 系列教程 (二) | 第一个 SpringBoot 工程详解

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 哎呦喂,按照以往的惯例今天周六我的安排应该是待在家学学猫叫啥的.但是今年这种日子就可能一去不复返了,没法办法啊.前 ...

  6. cogs 1001. [WZOI2011 S3] 消息传递 Tarjan

    1001. [WZOI2011 S3] 消息传递 ★★   输入文件:messagew.in   输出文件:messagew.out   简单对比时间限制:1 s   内存限制:128 MB Prob ...

  7. SpringCloud组件和概念介绍(一)

    一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...

  8. Java 方法重写方法重载

    1,方法的重载和方法的重写 方法名相同形参列表不通 方法名字的重新定义2,面向过程是分步骤解决问题 用方法组织代码 面向对象是以分类的方式解决问题 用类住址代码3 类是对对象的抽象 对象万事万物都是对 ...

  9. 一文带你看清HTTP所有概念

    上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性.我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的 ...

  10. Django SQLite3的使用

    https://blog.csdn.net/qq_34485436/article/details/72805908