纪中10日T3 2296. 神殿 bfs

Posted send-off-a-friend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纪中10日T3 2296. 神殿 bfs相关的知识,希望对你有一定的参考价值。

2296. 神殿 

(File IO): input:temple.in output:temple.out

时间限制: 1500 ms  空间限制: 524288 KB  具体限制  

Goto ProblemSet

题目描述

技术图片

输入

技术图片

输出

技术图片

样例输入

样例输入1
2 2
+*
*U
1 1 2 2
样例输入2
2 3
<><
><>
1 1 2 1

样例输出

样例输出1
-1
样例输出2
4

数据范围限制

技术图片

提示

 题目标中的特殊符号:<>^v+*|-

Solution

走迷宫是BFS的长项

而这一道题就是在走迷宫的基础上改动了一些规则而已

广度优先遍历的规则:

在访问完所有的第i层节点后,才会开始访问第i+1层节点

队列里只会有相邻两层的节点

对于这道题,我们首先要解决状态表示

我的做法是,用一个四维bool数组以及一个四位的int数组

bool dt[1001][1001][4][4];
//   dt   x    y   rec door
int door[4]=1,2,3,0;

如注释所示,dt[x][y][rec][door]即表示坐标为(x,y)的房间里,此时状态为rec时,编号为door的门的状态

 

那么

以上是关于纪中10日T3 2296. 神殿 bfs的主要内容,如果未能解决你的问题,请参考以下文章

纪中5日T3 1566. 幸运锁(lucky.pas/c/cpp)

纪中10日T1 2313. 动态仙人掌

2021.7.15 纪中 Day 4 总结

纪中10日T1 2300. noip普及组第一题模板题

纪中17日T1 2321. 方程

纪中5日T1 1564. 旅游