luogu#P16006. [ICPC 2020 NAC] Tomb Raider
[ICPC 2020 NAC] Tomb Raider
题目描述
古墓丽影胡进入了一座新古墓!古墓里布满了石像鬼、镜子和障碍物。有一扇门,门后藏着宝藏。胡必须打开这扇守护宝藏的门。门上用古老的文字写着开门的秘诀:
每个石像鬼的每一张脸都应当看到另一张石像鬼的脸。
这意味着石像鬼必须被旋转,使得光线束能够从每个石像鬼的一张脸出发,到达另一张石像鬼的脸(可能是它自己的另一张脸)。光线可以在镜子中反射。
古墓的平面图可以描述为一个 的矩形网格,每个格子可能是:
- 点号 (
.) 表示空格子。 - 井号 (
#) 表示障碍物。 - 正斜线 (
/) 表示双面镜,反斜线 (\) 也表示双面镜。 - 字符
V表示一个石像鬼,它的两张脸分别朝向上方和下方。 - 字符
H表示一个石像鬼,它的两张脸分别朝向左侧和右侧。
除了 \ 和 / 镜子之外,古墓的四周由镜面墙壁包围。关于光的传播,采用以下常识:
- 光在空格子中沿直线传播。
- 两束光可以相交而不互相干扰。
\镜子将从上方、下方、左侧或右侧入射的光分别反射到右侧、左侧、下方或上方。
/镜子将从上方、下方、左侧或右侧入射的光分别反射到左侧、右侧、上方或下方。- 光遇到墙壁(墙壁均为镜面)时,会被 度反射。
- 光被障碍物和石像鬼阻挡。
胡可以将任意一个石像鬼旋转 度。时间紧迫,他想知道为了打开宝藏之门,至少需要旋转多少个石像鬼。
输入格式
输入的第一行包含两个空格分隔的整数 和 (),表示古墓的尺寸。
接下来的 行,每行包含一个长度为 的字符串 ,字符如上所述,表示古墓的平面图。
输出格式
输出一个整数,表示为了打开宝藏之门,至少需要旋转的石像鬼数量。如果无解,输出 。
5 5
/.V.\
./.V.
..#..
.V.#.
\.V./
3
2 5
V...\
H...V
-1
2 2
VV
VV
0
提示
样例解释
:::align{center}
:::
上图分别展示了样例输入 #1 的初始配置(左)和解法配置(右)。为了解开谜题,需要旋转三个石像鬼。
翻译由 DeepSeek V3.2 完成