QOJ.ac

QOJ

時間限制: 1.0 s 記憶體限制: 512 MB 總分: 100

#15969. 宝藏与维京人

统计

你有一张排列在 $N \times M$ 网格上的藏宝图。网格中的每个格子要么是海洋,要么是岛屿的一部分。此外,地图上还标有宝藏和一艘占据一个(海洋)格子的敌方维京船。最后,为了方便起见,你还画出了自己当前的位置。

现在你必须设定一条固定的路线来获取宝藏。该路线必须从你的位置开始,在宝藏处结束,并由一系列移动组成。在每次移动中,你只能走到一个(水平或垂直)相邻且不属于岛屿的格子。但要小心:维京船可能会跟着你,并使用相同的移动方式!在你根据路线进行每次移动后,维京船可以选择移动或不移动。你的移动和维京船的反应合起来称为一个回合。

在每个回合结束后,会进行以下检查:

  • 如果你与维京船处于同一条直线上(即你与维京船处于同一行或同一列,且你与维京船之间只有海洋),你就死了。
  • 如果你没有死且到达了宝藏所在地,你就获得了宝藏。

编写一个程序,判断是否可以提前设定一条固定的路线,使得你沿着这条路线走能够获得宝藏,并且无论维京船如何移动,你都不会被维京人杀死。

输入格式

输入的第一行包含两个整数 $N$ 和 $M$,表示地图的尺寸。

接下来的 $N$ 行,每行包含 $M$ 个字符。每个字符描述地图中的一个格子,可以是 .(海洋)、I(岛屿的一部分)、V(维京船)、Y(你的位置)或 T(宝藏)。VYT 中的每一个都恰好出现一次。

输出格式

输出的唯一一行必须包含字符串 YES(如果可以设定一条路线来获得宝藏)或 NO(否则)。

数据范围

$1 \le N, M \le 700$。

在价值 50 分的测试用例中,$1 \le N, M \le 200$。

样例

输入样例 1

5 7
Y.....V
..I....
..IIIII
.......
...T...

输出样例 1

YES

输入样例 2

5 7
Y....V.
..I....
..IIIII
.......
...T...

输出样例 2

NO

输入样例 3

2 3
.YT
VII

输出样例 3

NO

说明

在第一个样例中,以下路线可以让你获得宝藏: 下,下,下,右,右,右,下。

在第二个和第三个样例中,不存在一条能让你存活并获得宝藏的路线。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.