#2664. 小S练跑步

小S练跑步

题目描述

S\red{S}是一个爱锻炼的孩子,他在放假期间坚持在A\red{A}公园练习跑步。

但不久后,他就开始为在重复的地点练习感到厌烦了,他就打算去B\red{B}公园跑步。

但是小S\red{S}由于没有去过B\red{B}公园,他不知道B\red{B}公园是否适合练习跑步,又不知道在B\red{B}公园怎样跑是最优的。所以小S\red{S}就去B\red{B}公 园进行了一番勘测。

S\red{S}在进行了一番勘测后,画出了一张地图,地图每一个位置上都辨识了小S\red{S}到达该位置后不能往哪一个方位移动。其中有5\red{5}种表示的符号:"U\red{U}"代表不能向上移动,"D\red{D}"代表不能向下移动,"L\red{L}"代表不能向左移动,"R\red{R}"代表不能向右移动,如果该位置有障碍物,小S\red{S}到达那里后无法继续训练,就用"S\red{S}"来代表。整个公园共有n\red{n}m\red{m}列,小S\red{S}会从第1\red{1}行第1\red{1}列出发,到第n\red{n}行第m\red{m}列结束他的练习。

现在小S\red{S}想要知道,从起点(即第1\red{1}行第1\red{1}列)到终点(第n\red{n}行第m\red{m}列),途中最少要改变几次方向(即上一次移动的方向和这一次移动的方向不一样)?

注意:小S\red{S}如在训练途中离开公园(即地图范围),则算是结束训练。

输入格式

1\red{1}行两个整数n\red{n}m\red{m,}它们的定义请看题目描述。

2\red{2\sim}n+1\red{n+1}行,每行有m\red{m}个字符,表示小S\red{S}的移动方向。

输出格式

如果小S\red{S}从第1\red{1}行第1\red{1}列出发无论如何都到达不了第n\red{n}行第m\red{m}列,输出"NoSolution\red{No Solution}",否则输出小S\red{S}途中最少要改变方向的次数。

样例

输入样例

3 3

ULL

LDU

SUD

输出样例

1

提示

样例解释

S\red{S}先向右移动移动了2\red{2}格,再向下移动2\red{2}格,就到达了终点,这样只用改变一次方向。

数据范围

10%\red{10\%}的数据是题目的馈赠。

30%\red{30\%}的数据,1\red{1≤}n,m\red{n,m≤}10\red{10}

50%\red{50\%}的数据,1\red{1≤}n,m\red{n,m≤}50\red{50}

70%\red{70\%}的数据,1\red{1≤}n,m\red{n,m≤}250\red{250}

100%\red{100\%}的数据,1\red{1≤}n,m\red{n,m≤}500.\red{500.}

其中50%\red{50\%}的数据是先构造出路径,再构造地图的。 100%\red{100\%}数据是随机构造的。

统计

相关

在下列比赛中:

入门班9