xzc的二階魔方最少步還原 Apare_xzc

xzc的二階魔方最少步還原

時間限制:1000ms
空間限制:256M
其它說明:Special Judge


題面:

        xzc是一個魔方愛好者,他最近在練習二階魔方全預判,他想得到12步之內的二階魔方還原步驟,你能幫幫他嗎?
        如果你沒玩過魔方,那麼請看下面的說明:

符號說明:

我們遵循WCA規範,對魔方的轉動有如下操作:

  • U, D, L, R, F, B分別表示上,下,左,右,前,後面順時針旋轉90°
  • U', D', L', R', F', B' 分別表示上,下,左,右,前,後面逆時針旋轉90°
  • U2, D2, L2, R2, F2, B2則分別表示上,下,左,右,前,後面旋轉180°
  • x代表魔方整體向R方向旋轉90°
  • y代表魔方整體向U方向旋轉90°
  • z代表魔方整體向F方向旋轉90°
  • x', y', z', x2, y2, z2 同理
    我們這裏借用gan魔方CFOP公式圖來形象地表示:
    gan CFOP
    二階魔方同理
正階魔方配色說明:

        N*N*N的正階魔方(N>=2)標準配色爲(黃色爲頂,紅色在前看):
上黃 下白 左藍 右綠 前紅 後橙
黃白相對 藍綠相對 紅橙相對
在這裏插入圖片描述

        xzc不喜歡轉動後面,左面和底層,因爲那樣不順手,影響還原魔方速度。現在他有一個打亂的二階魔方,已知每個面四個塊的顏色,你能告訴他如何在12步之內用集合{R,U,F,R',U',F',R2,U2,F2}中的操作還原嗎?(U2,R2,F2都算作一步)

輸入格式:

        輸入爲一個長度爲24的字符串,字符串的字母來自集合{Y,W,B,G,R,O},這六個字母分別表示黃色(Yellow),白色(White),藍色,綠色,紅色,橙色,長度爲24的字符串4個連續的表示一個面,一共六個面。表示的順序爲:上,下,左,右,前,後。 每個面的四個字母分別表示魔方展開圖中這個面的:左上,右上,右下,左下的顏色。具體可參見樣例說明。

輸出格式

        輸出有兩行。第一行爲正整數step, 代表還原魔方的步數x, 要求x<=12。第二行爲一個不包含空格的字符串str,表示魔方還原的步驟。str只能包含{R,U,F,R',U',F',R2,U2,F2}中的操作,每個操作算一步。答案不唯一,合理即可。保證輸入有12步之內的解,且輸入狀態非還原態

樣例輸入:
BYGGYGWWORRBYRBWWOOBGYOR
樣例輸出:
9
R2U'F2UF'U2R2FR2
樣例說明:
  • 樣例的打亂爲:黃頂紅前 R2 F’ R2 U2 F U’ F2 U R2
  • 魔方打亂後的展開圖如下:
    在這裏插入圖片描述
  • 魔方打亂後的立體視圖如下:
    在這裏插入圖片描述
  • 我們可以發現樣例輸出的答案和打亂互爲逆過程,所以一定是合理的,而且步數也在12之內。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章