题目链接

题目

题目描述

Nancy喜欢吃果冻!

Nancy钻进了一个 \(n \times n \times n\) 的果冻里,她想从(1,1,1)一路上、下、左、右、前、后六个方向吃到(n,n,n)。

但果冻毕竟是有许多口味的,标记为*的口味是Nancy不愿意吃的,其余的果冻均标记为.。

Nancy不想吃坏肚子,于是她想尽可能少的吃果冻。

下面给出果冻的情况,请你帮忙计算一下她能吃多少块果冻叭!

输入描述

第一行:一个整数n。

接下来n层,每组n行,每行n列,表示果冻(i,j,k)的情况(如题目描述所述)。

数据满足:\(1 \leq n \leq 100\),保证果冻(1,1,1)不是Nancy不愿意吃的。

输出描述

如果可以到达(n,n,n),请输出路上吃的果冻数量,否则请输出-1。

示例1

输入

2
.*
..
*.
..

输出

4

题解

知识点:BFS。

一个三维迷宫板板题,没啥好说的,第一次写觉得挺好玩qwq。

代码

#include <bits/stdc++.h>

using namespace std;

int n;
char dt[110][110][110];
int step[110][110][110];
int dir[6][3] = { {-1,0,0},{1,0,0},{0,-1,0},{0,1,0},{0,0,-1},{0,0,1} };
struct pos {
int x, y, z;
}; int bfs() {
queue<pos> q;
pos s = { 0,0,0 };
step[0][0][0] = 1;
q.push(s);
while (!q.empty()) {
pos now_pos = q.front();
q.pop();
if (now_pos.x == n - 1 && now_pos.y == n - 1 && now_pos.z == n - 1)
return step[n - 1][n - 1][n - 1];
for (int i = 0;i < 6;i++) {
pos cur_pos;
cur_pos.x = now_pos.x + dir[i][0];
cur_pos.y = now_pos.y + dir[i][1];
cur_pos.z = now_pos.z + dir[i][2];
if (0 <= cur_pos.x && cur_pos.x < n &&
0 <= cur_pos.y && cur_pos.y < n &&
0 <= cur_pos.z && cur_pos.z < n &&
dt[cur_pos.x][cur_pos.y][cur_pos.z] == '.' &&
!step[cur_pos.x][cur_pos.y][cur_pos.z]) {
q.push(cur_pos);
step[cur_pos.x][cur_pos.y][cur_pos.z] = step[now_pos.x][now_pos.y][now_pos.z] + 1;
}
}
}
return -1;
} int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> dt[i][j];
cout << bfs() << '\n';
return 0;
}

NC201613 Jelly的更多相关文章

  1. Jenkins中Jelly基础、超链接、国际化

    Jelly基础 参考:https://wiki.jenkins-ci.org/display/JENKINS/Basic+guide+to+Jelly+usage+in+Jenkins UI Samp ...

  2. Android4.1(Jelly Bean)API新特性尝鲜

    原文:http://android.eoe.cn/topic/android_sdk Android 4.1 APIs (API Level: 16)http://developer.android. ...

  3. Jenkins中Jelly邮件模板的配置

    [链接]Jenkins中Jelly邮件模板的配置http://blog.csdn.net/hwhua1986/article/details/47975237

  4. 洛谷P3926 SAC E#1 - 一道不可做题 Jelly【模拟/细节】

    P3926 SAC E#1 - 一道不可做题 Jelly [链接]:https://www.luogu.org/problem/show?pid=3926 题目背景 SOL君(炉石主播)和SOL菌(完 ...

  5. l洛谷 P3926 SAC E#1 - 一道不可做题 Jelly

    P3926 SAC E#1 - 一道不可做题 Jelly 题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢吃蒟蒻果冻.而SOL菌也很喜欢蒟蒻果冻. 有一 ...

  6. T84341 Jelly的难题1

    T84341 Jelly的难题1 题解 当窝发现窝的锅在读入这个矩阵的时候,窝..窝..窝.. 果然,一遇到和字符串有关的题就开始吹空调 好啦我们说说思路吧 BFS队列实现 拿出一个没有走过的点,扩展 ...

  7. 【6.28校内test】T1 Jelly的难题1

    Jelly的难题[题目链接] 废话一句:今天中考出成绩,感觉大家考的都超级棒,不管怎样,愿大家成为最好的自己. 好了废话完了,下面是题解部分: SOLUTION: 首先你可能发生的,是看不懂题: 定睛 ...

  8. 蒲公英 · JELLY技术周刊 Vol.03

    蒲公英 · JELLY技术周刊 Vol.03 「蒲公英」期刊全新升级--JELLY技术周刊!深度挖掘业界热点动态,来自团队大咖的专业点评,带你深入了解团队研究的技术方向. 登高远眺 天高地迥,觉宇宙之 ...

  9. 蒲公英 · JELLY技术周刊 Vol.07: EcmaScript 2020 -- 所有你想要知道的都在这

    「蒲公英」期刊,每周更新,我们专注于挖掘「基础技术.工程化.跨端框架技术.图形编程.服务端开发.桌面开发.人工智能」等多个大方向的业界热点,并加以专业的解读:不仅如此,我们还精选凹凸技术文章,向大家呈 ...

  10. 蒲公英 · JELLY技术周刊 Vol.13 跟 VSCode 学习如何开发大型 IDE 项目

    开发一个 IDE 很难么?这或许是件很难的事情,但当我们参考 VSCode 的技术构架来看,整个开发流程就会平滑顺畅很多,从内核开发.代码编辑器.视图结构到插件系统,在这整个技术构架中我们可以看到很多 ...

随机推荐

  1. docker 安装 ETCD 及 etcd 使用

    本文为博主原创,未经允许不得转载: etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很强大),实现了分布式键值存储和服务发现,etcd 和 ...

  2. zookeeper 使用api 进行节点增删改查及实现简易的配置中心

    本文为博主原创,未经允许不得转载: 目录: 1. 对 zookeeper 节点进行增删改查既配置acl 权限等 2.使用 zookeeper  实现一个简易的配置中心 1. 对 zookeeper 节 ...

  3. Linux 常见重要系统文件

    Linux 常见重要系统文件 目录 Linux 常见重要系统文件 网卡配置文件 文件内容举例: DNS配置文件 文件内容举例: 系统hosts文件 文件内容举例: fstab文件 文件内容举例: rc ...

  4. java: 程序包xxx.xxx.xxx不存在

    1.问题 在拷贝进来一个文件夹/文件进入项目后,发生报错:java: 程序包com.itheima.mp.domain.query不存在 2.解决 这里主要是由于我们的文件直接拷贝进来,导致编译的时候 ...

  5. CSS 3D - rotate旋转90度看不到的原理 和 解决方法

    原理: 旋转元素的坐标有三个 :X(向右),   Y(向左) ,   Z(向电脑屏幕的你) 当没有位移旋转元素时,元素 Z 坐标也会同着一起旋转 ,当一个物品旋转到90度时,我们只能看到它的厚度,而d ...

  6. [转帖]实战演练 | Navicat 数据生成功能

    https://zhuanlan.zhihu.com/p/631823381 数据生成的目的是依据某个数据模型,从原始数据通过计算得到目标系统所需要的符合该模型的数据.数据生成与数据模型是分不开的,数 ...

  7. [转帖]Mysql 常用命令行,持续补充

    https://www.cnblogs.com/wzj1223/p/13152446.html 1.常用命令行 # 登录Mysql mysql -uroot -proot # 查看所有数据库 show ...

  8. [转帖]unmatched(riscv64)上编译,安装和移植SPEC CPU 2006

    https://zhuanlan.zhihu.com/p/429399630 Linux ubuntu 5.11.0-1021-generic #22-Ubuntu SMP Tue Sep 28 15 ...

  9. [转帖]a.out、coff、elf三种文件格式

    补充:a.out早期并不是elf格式的,而是unix下另一种可执行格式,新的a.out是 本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and li ...

  10. k8s的内部服务通信

    首先看看 k8s 集群中内部各个服务互相访问的方法 Cluster IP Kubernetes以Pod作为应用部署的最小单位.Kubernetes会根据Pod的声明对其进行调度,包括创建.销毁.迁移. ...