a957: 魯比克的三次方
標籤 :
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Special

最近更新 : 2025-11-23 22:37

內容

$\def\bk{\color{#333333}}$Rubik's Cube is a 3-D combination puzzle invented in 1974 by Hungarian sculptor and professor of architecture Ernő Rubik.

Originally called the Magic Cube, the puzzle was licensed by Rubik to be sold by Pentangle Puzzles in the UK in 1978, and then by Ideal Toy Corp in 1980 via businessman Tibor Laczi and Seven Towns founder Tom Kremer.

The cube was released internationally in 1980 and became one of the most recognized icons in popular culture. It won the 1980 German Game of the Year special award for Best Puzzle.

As of March 2021, over 450 million cubes had been sold worldwide, making it the world's bestselling puzzle game and bestselling toy.

The Rubik's Cube was inducted into the US National Toy Hall of Fame in 2014.


 

魔方是個好玩的益智玩具,可以促進大腦血液循環還有手指肌肉協調機能。

有天Chris在IOIC國旅遊時看到室友在玩魔方,於是他也買了一顆二階魔方來玩

但是因為Chris真的不會轉,就算在網路上看到最多只需要14步就可以將魔方復原,但他還是不會解。

這時他發現DDJ上有許多電神可以幫他解,所以他就把他出成題目了。

給你一顆被打亂的二階魔方,請將他以最少步復原,並輸出轉動的步驟


 

先講幾個魔方的基本知識

1. 方塊的面

在還沒被打亂時的魔方,每一面的顏色各是 白(W)、黃(Y)、藍(B)、綠(G)、紅(R)、橘(O),並且W在Y對面、B在G對面、R在O對面

在面對一顆二階魔方時,可以將其分成6層,分別是前(F)、後(B)、上(U)、下(D)、左(L)、右(R)

並且有鑑於很難用3d的方式表示出一顆魔方,於是會以平面展開圖呈現。(相信各位的立體幾何能力都很好)

我們可以把上面那顆魔方展開成下圖(白色面前,藍色面上,紅色面右),右邊以灰線連結相鄰的面

2. 方塊的轉動

講完方塊本身,來講一下轉動的部分,二階魔方有12個轉動一步的方式,分別與6個層的代號相同,只是有分成順時鐘轉與逆時鐘轉,原本的代號(F、B、U、D、L、R)代表該層以面對該層的順時鐘方向轉,加上一個單引號(')後的代號(F'、B'、U'、D'、L'、R')則代表逆時鐘轉

例: F是前面那層順時鐘轉, R'是右面那層逆時鐘轉

以下為上面那顆魔方經過 L、F'、U、B、R' 轉動的樣子


 輸入說明與輸出說明詳見下方

輸入說明

第一行輸入一數$\bk T$,表示將有$\bk T$筆測資

對於每筆測資,給一打亂的魔方的平面展開圖,顏色將以代號表示(沒有面的地方以'_'填充)

白(W)、黃(Y)、藍(B)、綠(G)、紅(R)、橘(O) )

輸出說明

對於每筆測資

第一行輸出最少需要幾步解開這個魔方

(只有 F F' U U' R R' B B' D D' L L' 這幾種動法,

沒有像是L2這種東西)

第二行依序輸出轉動步驟的代號 

 

解開的定義為6個面的四個方塊顏色一樣

範例輸入
2
__GG____
__RY____
YWGRGWOO
RYBBYWOB
__OR____
__WB____
__BG____
__RB____
WGYYORWO
RGYOWRWY
__OG____
__BB____
範例輸出
5
R B' U' F L'
12
F' U' R' U F' U F' U' U' F' R' F'
測資資訊:
記憶體限制: 256 MB
公開 測資點#0 (20%): 2.0s , <1M
公開 測資點#1 (30%): 2.0s , <1M
公開 測資點#2 (30%): 2.0s , <1M
公開 測資點#3 (20%): 2.0s , <1M
提示 :

$\bk{\begin{array}{l}
\bullet\ \ 1 \le T \le 20 \\
\bullet\ \ 輸入必為\bk{6*8}之字元陣列,並且必為二階魔方一個合法狀態(就是一定有解) \\
\bullet\ \ 最少步數至多為14 \\
\end{array}}$ 

 

$\bk{\begin{array}{ccc} \hline
Subtask & Score & Extra\ Input\ Limits \\ \hline
\#0 & 20 & 最少步數\leq1 \\
\#1 & 30 & 最少步數\leq3 \\
\#2 & 30 & 最少步數\leq7 \\
\#3 & 20 & No\ extra\ limits \\ \hline
\end{array}}$

 

注意:由於本題為Special Judge,子題AC時看不到程式真正執行的時間(他會顯示0ms),所以請自行評估程式執行的時間以及有沒有更快的寫法

標籤:
出處:
[管理者:
chrislaiisme (climX)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」