HDOJ--1312--Red and Black【DFS】-程序员宅基地

技术标签: DFS  HDOJ代码  

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


简单的DFS


#include<cstring>
#include<string>
#include<fstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cctype>
#include<algorithm>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<stack>
#include<ctime>
#include<cstdlib>
#include<functional>
#include<cmath>
using namespace std;
#define PI acos(-1.0)
#define MAXN 100100
#define eps 1e-7
#define INF 0x7FFFFFFF
#define long long ll;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1

char a[30][30];
int vis[30][30];
int dir[4][2] = {1,0,-1,0,0,1,0,-1};
int n,m,step;
bool cango(int xx,int yy){
    if(xx>=0&&xx<n&&yy>=0&&yy<m)    return true;
    return false;
}
int dfs(int x,int y){
    vis[x][y] = 1;
    step++;
    int i;
    for(i=0;i<4;i++){
        int xx = x + dir[i][0];
        int yy = y + dir[i][1];
        if(a[xx][yy]=='.'&&cango(xx,yy)&&!vis[xx][yy]){
            dfs(xx,yy);
        }
    }
}
int main(){
    int i,j,px,py;
    while(scanf("%d%d",&m,&n),m&&n){
        memset(vis,0,sizeof(vis));
        step = 0;
        for(i=0;i<n;i++){
            scanf("%s",a[i]);
            for(j=0;j<m;j++){
                if(a[i][j]=='@'){
                    px = i;
                    py = j;
                }
            }
        }
        vis[px][py] = 1;
        dfs(px,py);
        printf("%d\n",step);
    }
    return 0;
}



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zzzz40/article/details/8952099

智能推荐

IDEA Help–>Edit Custom VM Options 修改后导致打不开进行复原-程序员宅基地

文章浏览阅读1.2k次。IDEA Help–>Edit Custom VM Options 修改后的坑_edit custom vm options

LVGL之GUI GUIder使用教程_lvgl界面编辑器-程序员宅基地

文章浏览阅读3.6k次,点赞7次,收藏28次。lvgl是一个免费的开放源代码图形库,提供创建具有易于使用的图形元素,再配合NXP提供的GUI-Guider软件,极大简化了嵌入式系统UI的设计。GUI Guider是恩智浦提供的用户友好型图形用户界面开发工具,可通过开源LVGL图形库快速开发高品质的显示。GUI Guider的拖放编辑器可以轻松利用LVGL的众多特性,如小部件、动画和样式来创建GUI,而只需少量代码或根本无需任何代码。单击按钮,您可以在模拟环境中运行应用或将其导出到目标项目。_lvgl界面编辑器

Unity Editor 不同枚举显示不同属性_unity 面板中不同枚举选择不同属性-程序员宅基地

文章浏览阅读623次。1_unity 面板中不同枚举选择不同属性

基于ffmpeg的MP4文件解封装_linux ffmpegmp4解封装-程序员宅基地

文章浏览阅读944次,点赞26次,收藏14次。基于ffmpeg的MP4文件解封装_linux ffmpegmp4解封装

QT设置圆角_radius: qt.point-程序员宅基地

文章浏览阅读563次。qt控件的圆角设置,记录一下_radius: qt.point

django如何正确安装mysqlclient(超详细)_django项目安装mysqlclient没有轮子文件-程序员宅基地

文章浏览阅读2.4k次。我们在django项目中会用到MySQLdb,但是有安装不成功首先我们先看一下自己安装的python是多少位64或32接着我们下载对应系统版本和你需要安装的mysqlclient版本地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient我这里选择的是32位的36版本下载好之后我们把文件放入自己需要的项目中,我这..._django项目安装mysqlclient没有轮子文件

随便推点

虚拟化 (Hypervisor) 技术详解-程序员宅基地

文章浏览阅读1.5k次,点赞34次,收藏24次。随着 ICT 技术的发展,单 SOC 算力可以承担更多业务,网络带宽拓展及低时延、区分服务等特性使得业务部署、功能分配更加灵活,比如 : 感知、融合、规划、控制、执行可分离解耦,汽车业务功能可分可合、可软件定义。电子电气架构从分布式架构到域集中式架构,再到中央集中式架构转变,分散的 ECU功能集成到域控制器甚至车载中央计算机,这就是多域融合。汽车电子底层硬件不再是由单一芯片提供简单的逻辑计算,而是需要复杂的多核 SoC 芯片提供更为复杂控制逻辑以及强大的算力支持。但是多域业务具有不同的技术需求,在域融合的同_hypervisor

html margin不居中,html中使用margin:0 auto整个页面不居中的解决方法分享-程序员宅基地

文章浏览阅读460次。今天写个jsp页面,乍么调来调去123xxx 这个属怎么弄都不能让页面居中展示,而且其它样式也出现莫名其妙的问题后来找这个这个问题的解决方案:原来是L-Blog默认没有在HTML前加上DTD,于是IE就以HTML而不是XHTML来解释文档.问题并不在CSS而在XHTML网页本身.需要加上这样的代码才能使得上述设置有效果:复制代码代码如下:-//W3C//DTD XHTML 1.0 Transiti..._html导入jsp不居中

【学习笔记】Esp32 Arduino 串口中断函数 缓冲区修改_arduino setrxfifofull-程序员宅基地

文章浏览阅读3.3k次,点赞8次,收藏32次。Esp32在Arduino开发环境下的串口中断实现和串口接收大数据的处理办法(修改缓冲区大小)_arduino setrxfifofull

Apache Tomcat 问题漏洞_apache tomcat 安全漏洞(cve-2023-28709)-程序员宅基地

文章浏览阅读1.1k次。Apache Tomcat 环境问题漏洞(CVE-2022-42252)Apache Tomcat 信息泄露漏洞(CVE-2023-28708)建议直接升级tomcat的小版本,即就是升级到最新版本注:跨版本升级请自行百度。_apache tomcat 安全漏洞(cve-2023-28709)

受够了百度网盘?如何注册无限容量的Google Drive网盘_googledrive注册教程-程序员宅基地

文章浏览阅读4.9w次,点赞15次,收藏136次。几天前,我解锁过一个get谷歌网盘的姿势。无限存储空间,还能变成1EB的电脑硬盘。那个姿势,很方便。先打一针,以下全程需要特殊上网方式网络,能打开谷歌那种网络。first,去虚拟身份网站。地址:https://www.fakenamegenerator.com/advanced.php?t=country&amp;n[]=us&amp;c[]=us&amp;gen=50&amp;age-..._googledrive注册教程

【爬取微信公众号图片生成Word or PPT】_用python实现将微信公众号图片下载并保存到ppt中-程序员宅基地

文章浏览阅读221次。将微信公众号上的推文(主要是指图文类的学习资料)爬取下来整合成word或者ppt格式文档。_用python实现将微信公众号图片下载并保存到ppt中