Red and Black

题目

我是题目链接

题解

找出所能到达的所有黑色的数量,用DFS和BFS均可。

BFS:

#include <iostream>
#include <queue>
#define judge(x,y) (x>=0&&x<h&&y>=0&&y<w) //宏定义判断坐标是否越界
using namespace std;
//@start: 2020-04-02 22:20:48 char mp[25][25];//地图
int dir[4][2]={1,0,0,1,-1,0,0,-1};//方向数组
int w,h,ans,dx,dy; struct node
{//bfs需要结点存入queue
int x,y;
}; void bfs(int x,int y)
{
ans=1;
queue<node> q;
node s,t;
s.x=x,s.y=y;
q.push(s);
while(!q.empty())
{
s = q.front();q.pop();
for(int i=0;i<4;i++)
{//扩展上下左右四个点
t.x = s.x + dir[i][0];
t.y = s.y + dir[i][1];
if(mp[t.x][t.y]=='.'&&judge(t.x,t.y)){
//可走且坐标合法
ans++;
mp[t.x][t.y]='#';
q.push(t);
}
}
}
} int main()
{
while(cin>>w>>h && w && h)
{
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
cin>>mp[i][j];
if(mp[i][j]=='@')
dx=i,dy=j;
}
}
ans=0;
bfs(dx,dy);
cout<<ans<<endl;
}
return 0;
}

DFS:

#include <iostream>
#include <cstdio>
#define judge(x,y) (x>=0&&x<h&&y>=0&&y<w)
using namespace std;
//@start: 2020-04-03 08:48:44 char mp[25][25];
int dir[4][2] = {1,0,0,1,-1,0,0,-1};
int w,h,ans,dx,dy; void dfs(int x,int y)
{
ans++;
mp[x][y]='#';
for(int i=0;i<4;i++)
{
int tx = x + dir[i][0];
int ty = y + dir[i][1];
if(judge(tx,ty) && mp[tx][ty]=='.'){
dfs(tx,ty);
}
}
} int main()
{
while(cin>>w>>h && w && h)
{
ans=0;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
cin>>mp[i][j];
if(mp[i][j]=='@'){
dx=i;dy=j;
}
}
}
dfs(dx,dy);
cout<<ans<<endl;
}
return 0;
}

【HDU】1312 Red andBlack (DFS&BFS经典好题)的更多相关文章

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

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

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

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

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

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

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

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

  5. 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 ...

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

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

  7. 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 ...

  8. hdu 1312:Red and Black(DFS搜索,入门题)

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

  9. HDU 1312 Red and Black 第一题搜索!

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

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

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

随机推荐

  1. day01-2-依赖管理和自动配置

    依赖管理和自动配置 1.依赖管理 1.1什么是依赖管理 spring-boot-starter-parent 中还有父项目,声明了开发中常用的依赖的版本号 并且进行自动版本仲裁,即如果程序员没有指定某 ...

  2. 关于两行代码让我时间无限拉长这件事------mainServlet

    在再一次尝试实现增删改查的功能时,出现了一些BUG,修改功能一直实现不了,查了好久的资料,这才发现问题 如上图所示,这个Servlet里面定义的方法,虽然很短,但是重要的很奥,改了好久都没注意到这个问 ...

  3. 如何使用 vue + intro 实现后台管理系统的引导

    引言 为了让用户更好的适应新版,或更方便使用公司内部系统,可以加入新手指引功能.如果你也想在自己的网页加入用户指引,那就试试在 vue 中使用 Intro.js 吧,它能够很轻松的制作出新手指引的效果 ...

  4. Web请求与响应(SpringBoot)

    Web请求与响应 Web的工作原理可以分为以下几个步骤: 输入URL:Web客户端使用Web浏览器输入所需访问的URL(统一资源定位符). 建立连接:Web浏览器与Web服务器之间建立TCP/IP连接 ...

  5. XAML 设计器已意外退出。(退出代码: e0434352)

    一.前言 开门见山,这个问题我遇到过两次,第一次因为项目刚开始不长时间,我查了很长时间都没解决,然后就直接重写了,几乎一样的写法,但问题没复现了,但程序员思维告诉我,一定还是有比较关键的地方出现了问题 ...

  6. 【JavaScript快速排序算法】不同版本原理分析

    说明 快速排序(QuickSort),又称分区交换排序(partition-exchange sort),简称快排.快排是一种通过基准划分区块,再不断交换左右项的排序方式,其采用了分治法,减少了交换的 ...

  7. BUU-RE-刮开有奖-WinMain

    WinMain函数参数介绍 int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrev ...

  8. 人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制作 制造业通用APP

    安卓从2009年开始流程于手机.平板,已经是不争的非常强大生产力工具,更为社会创造非常高的价值, 现在已经是202X年,已经十几年的发展,安卓平台已经无所不在. 因此建议人人都学学APP制作,简易入门 ...

  9. 部署lnmp环境,安装typecho博客

    安装nginx和PHP环境 root@cby:~# apt install nginx php7.4 php7.4-mysql php7.4-fpm 修改nginx配置文件 root@cby:~# v ...

  10. python程序,实现以管理员方式运行程序,也就是提升程序权限

    quest UAC elevation from within a Python script? 我希望我的Python脚本能够在Vista上复制文件. 当我从普通的cmd.exe窗口运行它时,不会生 ...