1. 程式人生 > >JZOJ P5793. 【NOIP2008模擬】小S練跑步

JZOJ P5793. 【NOIP2008模擬】小S練跑步

5793. 【NOIP2008模擬】小S練跑步  (File IO): input:run.in output:run.out

Time Limits: 2000 ms  Memory Limits: 524288 KB  Detailed Limits  

Description

       小S是一個愛鍛鍊的孩子,他在放假期間堅持在A公園練習跑步。       但不久後,他就開始為在重複的地點練習感到厭煩了,他就打算去B公園跑步。       但是小S由於沒有去過B公園,他不知道B公園是否適合練習跑步,又不知道在B公園怎樣跑是最優的。所以小S就去B公園進行了一番勘測。       小S在進行了一番勘測後,畫出了一張地圖,地圖每一個位置上都辨識了小S到達該位置後不能往哪一個方位移動。其中有5種表示的符號:“U”代表不能向上移動,“D”代表不能向下移動,“L”代表不能向左移動,“R”代表不能向右移動,如果該位置有障礙物,小S到達那裡後無法繼續訓練,就用“S”來代表。整個公園共有n行m列,小S會從第1行第1列出發,到第n行第m列結束他的練習。       現在小S想要知道,從起點(即第1行第1列)到終點(第n行第m列),途中最少要改變幾次方向(即上一次移動的方向和這一次移動的方向不一樣)?       注意:小S如在訓練途中離開公園(即地圖範圍),則算是結束訓練。

Input

      第1行兩個整數n和m,它們的定義請看【題目描述】。       第2~n+1行,每行有m個字元,表示小S的移動方向。

Output

      如果小S從第1行第1列出發無論如何都到達不了第n行第m列,輸出“No Solution”,否則輸出小S途中最少要改變方向的次數。  

Sample Input

3 3
ULL
LDU
SUD

Sample Output

1

【樣例解釋】
      小S先向右移動移動了2格,再向下移動2格,就到達了終點,這樣只用改變一次方向。
 
 

Data Constraint

【資料範圍限制】   10%的資料是題目的饋贈。 30%的資料,1≤n,m≤10。 50%的資料,1≤n,m≤50。 70%的資料,1≤n,m≤250。 100%的資料,1≤n,m≤500. 其中50%的資料是先構造出路徑,再構造地圖的。 100%資料是隨機構造的。