luogu#P8169. [eJOI2021] Dungeons
[eJOI2021] Dungeons
题目描述
你需要在一个 的地图进行游戏。地图的每个位置包括下列类型:
- :空地。
- :墙壁。
- :金币。
- :炸弹。
- :起始位置。
每张地图包含一个或多个 。当游戏开始时,你的起点将会被选定为任意一个 。由于地图视野较暗,因此你只能看到以自身为中心的 正方形内的位置。同时, 和 在视野中会被视为是空地()。注意,你不可以进入墙壁()。
你每一步可以向上下左右四个方向进行移动。当你进入 格时,你会获得 枚金币,同时该格的 消失。当你进入 格时,你失去所有金币且游戏结束。
求最坏情况下能够获得金币数量的最大值。
输入格式
第一行两个正整数 。
接下来的 行用来描述地图。数据保证地图外围(即第一行、最后一行、第一列、最后一列)都是 #
字符。
输出格式
一个整数,表示最坏情况下能够获得金币数量的最大值。
3 7
#######
#Soooo#
#######
4
3 8
########
#SoXooS#
########
1
7 18
##################
#................#
#.o...SX.......o.#
#.o...X..X.....o.#
#.o.....XS.....o.#
#................#
##################
0
7 18
##################
#....#...........#
#.o...SX.......o.#
#.o...X..X.....o.#
#.o.....XS.....o.#
#.........#......#
##################
6
7 18
##################
#......X..S....oo#
##################
#..o..S.X......o.#
##########X#######
#o.....S...X.....#
##################
1
提示
样例 1 解释
由于 只有一个,因此起点固定,可以获得所有金币。
样例 2 解释
分别以左侧和右侧 为起点时的初始视野( 为起点):
$$\texttt{\#\#\#\,\,\,\,\,\,\,\,\#\#\#} \\ \texttt{\#@o\,\,\,\,\,\,\,\,o@\#} \\ \texttt{\#\#\#\,\,\,\,\,\,\,\,\#\#\#} $$以左侧的 为起点时可获得 枚金币,以右侧的为起点时可获得 枚。因此在最坏情况下最多可获得 枚金币。
样例 3 解释
无论起点是哪一个 ,初始视野均为:
由于不知道当前位置具体在地图上是哪里,因此最坏情况是踏入起点旁边的 (视野中为 )。这种情况下不能获得任何金币,答案为 。
样例 4 解释
分别以左上和右下的 为起点时的初始视野:
$$\texttt{\#..\,\,\,\,\,\,\,\,...} \\ \texttt{.@.\,\,\,\,\,\,\,\,.@.} \\ \texttt{...\,\,\,\,\,\,\,\,..\#} $$由于初始视野不同,因此可以通过 位置的不同判断在地图上的具体位置。因此可以获得所有金币,答案为 。
样例 5 解释
不妨先向左走 步。如果能够看到 ,那么可以判断出位于第四行,同时捡起左侧的金币。
否则仍无法判断位于第二行还是第六行。因此可以在向左 步的基础上往右 步(即走到起点右侧 步的位置)。如果视野右上是 (在地图中为 ),那么可以判断位于第六行。这时可以安全地一直向左获得第二列的金币。如果视野不是 ,那么只需一直向右即可获得第十六列和第十七列的金币。
按这种方案得到的答案是最优的,为 。
不难发现,如果直接向右,那么可能直接进入 ——这种方案得到的答案为 。
数据规模与约定
本题采用捆绑测试。
设地图中 的数量为 。
- Subtask 1(3 pts):,不存在 且只有地图外围有 。
- Subtask 2(7 pts):。
- Subtask 3(12 pts):。
- Subtask 4(23 pts):。
- Subtask 5(41 pts):,。
- Subtask 6(14 pts):无特殊限制。
对于 的数据,,。
说明
本题译自 eJOI2021 Day 2 B Dungeons。