憧憬成為魔法機器人


Submit solution

Points: 100 (partial)
Time limit: 10.0s
Memory limit: 64M

Author:
Problem type

此題為output only

給定一張\(n*m\)的方格表,其中起點為\(2\)的位置,終點為\(3\)的位置,機器人可使用如下指令

  • 走路:向前走若干步
  • 轉彎:向左或右轉
  • 循環:重複若干次指令(此指令記為兩個,分別為開始與結束)

若能以最小指令數通過所有圖中\(1\)的位置由面向下方開始並從起點走至終點,則機器人可獲得神(色)奇(情)之力,請幫助機器人完成他的夢想

另外,若指令總共所需移動步數超過\(10^7\)次方以上,則機器人會因電池耗盡而失敗

可重複通過\(1\)的位置並不會視為失敗

若有多組答案,請按照以下方式排序後輸出第一組解:

  1. 指令總數較少者優先
  2. 由第一個指令開始比較,第一個不同的指令按照\(E\)(最優先)\(,L,R,S,W\)的順序比較
  3. 若全數指令種類均相同,第一個不同的數字越小者優先
Input

judge上只會輸入該subtask的編號,下方Input說明為雲端硬碟上的檔案輸入格式

輸入第一行有兩個正整數\(n,m\ (1\le n,m\le 400)\)。

之後有\(n\)行,每行有\(m\)個正整數,代表輸入的圖表

其中

  • \(0\)代表該格不能通過
  • \(1\)代表該格必須通過
  • \(2\)代表起點
  • \(3\)代表終點
Output

第一行代表指令總數,之後每行輸入一個指令滿足執行完指令後能從\(2\)走至\(3\)通過所有\(1\)的位置

走路指令為先由\(W\)開始,並於空白後以一個正整數代表走的步數,如\(W\ 10\)

轉彎指令以\(L\)代表左轉,\(R\)代表右轉

循環指令為先由\(S\)代表,並於空白後以一個正整數代表循環次數,如\(S\ 10\)

接著於結束時以\(E\)代表

範例:

\(5\)

\(S\ 10\)

\(W\ 5\)

\(L\)

\(E\)

\(R\)

Score

第 \(1,2\) 組測資:每組\(5\%\)

第 \(3,4,5,6,7,8,9\) 組測資:每組\(10\%\)

第 \(10\) 組測資:\(20\%\)

Remark

所有Input與測試檔案均在https://drive.google.com/drive/folders/18hkIiuYCkGBCWviIqTyDSOIKE7waNmpQ

因為judge限制,不同subtask分數不會疊加,judge上各題Input以數字代表該subtask(如:1代表第一組subtask),請使用條件判斷對不同subtask輸出不同答案

若有發現更佳解,歡迎使用此表單提交,會有\(100\)元獎勵喔!

https://forms.gle/YyvKm85Mhv3KsVFF7


Comments

There are no comments at the moment.