//注意边界判断,调了好久

#include <iostream>
#include <queue>
using namespace std;
#define check(x,y)(x<wx&&x>=0&&y<hy&&y>=0) struct node {
int x, y;
};
char room[23][23];
int n, m, wx, hy, num; int dir[4][2] = {
{-1, 0}, {0, -1}, {1, 0}, {0, 1}
}; void bfs(int dx, int dy) {
num = 1; queue<node>q;
node start, next;
start.x = dx;
start.y = dy;
q.push(start);
while (!q.empty()) {
start = q.front();
q.pop();
// cout<<"out"<<start.x<<' '<<start.y<<endl;
for (int i = 0; i < 4; i++) {
next.x = start.x + dir[i][0];
next.y = start.y + dir[i][1];
if (check(next.x, next.y) && room[next.x][next.y] == '.') {
room[next.x][next.y] = '#';
num++;
q.push(next);
} }
}
} int main() {
int x, y, dx, dy;
while (cin >> wx >> hy) {
if (wx == 0 && hy == 0) {
break;
}
for ( y = 0; y < hy; y++) {
for (int x = 0; x < wx; x++) {
cin >> room[x][y];
if (room[x][y] == '@') {
dx = x;
dy = y;
}
}
}
num = 0;
bfs(dx, dy);
cout << num << endl;
}
return 0;
}

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

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

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

  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)

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

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

    传送门: 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(bfs,dfs均可,个人倾向bfs)

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

  7. 题解报告:hdu 1312 Red and Black(简单dfs)

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

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

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

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

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

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

随机推荐

  1. JavaCV人脸识别三部曲之一:视频中的人脸保存为图片

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于人脸识别 本文是<JavaCV人脸识别三部曲 ...

  2. windows安全中心打不开

    解决win11打不开安全中心的问题!!! 许多用户在最近都升级了Windows11系统,而且不少用户最近在使用Win11的时候发现自己打不开Windows安全中心 操作方法: 管理员权限打开Power ...

  3. 【Shell】字符串

    单引号和双引号 shell 字符串可以用单引号 '',也可以用双引号 "",也可以不用引号. 单引号的特点 单引号里不识别变量 单引号里不能出现单独的单引号(使用转义符也不行),但 ...

  4. vue基本操作[2] 续更----让世界感知你的存在

    Vue文件解析 什么是<template/>标签 template是html5新元素,主要用于保存客户端中的内容,表现为浏览器解析该内容但不渲染出来,可以将一个模板视为正在被存储以供随后在 ...

  5. python(django启动报错,之编码问题)UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte

  6. Django学习笔记:第三章D的路由和视图

    1.网站的入口--路由和视图 URL是网站Web服务的入口.用户在浏览器输入URL发出请求后,django会根据路由系统,运行对应的视图函数,然后返回信息到浏览器中. 1.1 认识路由 创建项目时,会 ...

  7. 微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka

    1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntu vim redis.conf bind 0.0.0 ...

  8. CRM系统化整合从N-1做减法实践

    1 背景 京销易系统已经接入大网.KA以及云仓三个条线商机,每个条线商机规则差异比较大,当前现状是独立实现三套系统分别做支撑. 2 目标 2022年下半年CRM目标是完成9个新条线业务接入,完成销售过 ...

  9. React错误: Can't resolve 'react-dom/client'

    错误截图 解决方案 当你的react版本低于18时,但仍然报这个错误,可以采用如下方案 意外的发现当我采用上述方案时,我的React路由跳转时,页面不刷新的问题也解决了,很神奇,日后技艺精进再补充.

  10. 青少年CTF平台-Web-PingME

    题目描述 题目难度一颗星,五十分. 解题记录 进入题目中,发现这是一个ping功能 我们用连字符||进行分割两个语句,保证同时运行且输出. Payload为127.0.0.1 || ls 发现有fla ...