P14714 [ICPC 2023 Tehran R] Rolling-Dice Puzzle

题目描述

:::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/4dwpi5ky.png) ::: Sarina 和她的兄弟 Soroush 正在玩掷骰子游戏。游戏在一个 $n \times m$ 的棋盘上进行。初始时,Soroush 将一个标准骰子放在棋盘的一个格子中。放置方式是:数字 $6$ 朝上,数字 $4$ 朝北(上),数字 $2$ 朝西(左)。在标准骰子中,$6$ 与 $1$ 相对,$2$ 与 $5$ 相对,$3$ 与 $4$ 相对。此外,他选择了一些格子并在其中任意写入了 $1$ 到 $6$ 之间的整数。 之后,Sarina 需要通过多次滚动骰子在棋盘上移动它。滚动的定义如下:假设两个相邻的格子 $A$ 和 $B$ 共享一条边 $e$,且骰子位于格子 $A$ 上;骰子可以围绕其与 $e$ 相接的边滚动,从而从 $A$ 移动到 $B$。例如,考虑骰子的起始位置。如果骰子围绕东、西、北、南边滚动,滚动后朝上一面的数字将分别为 $2$、$5$、$3$ 和 $4$。 每当 Sarina 将骰子移动到一个写有数字的格子,且骰子朝上一面的数字与该格子中的数字匹配时,她将获得一分。注意,Sarina 每个格子最多只能获得一分。游戏并不那么简单!一些格子中有障碍物,无法将骰子移动到有障碍物的格子中。你的任务是找出 Sarina 可以获得的最大分数。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$ ($1 \leq n, m \leq 100$),分别表示棋盘的行数和列数。接下来的 $n$ 行每行包含 $m$ 个字符,描述棋盘。空单元格用 "." 表示,障碍物用 "x" 表示。骰子的起始位置用 "s" 表示,被选中的单元格用其中写入的整数($1$ 到 $6$)表示。保证输入中只有一个 "s"。

输出格式

输出一行,包含 Sarina 可以获得的最大分数。

说明/提示

翻译由 DeepSeek V3 完成