Pocket Cube二階魔方

2022-05-27 00:51:10 字數 2283 閱讀 7496

hdu5983的一道題,看錯了輸入,看了題解發現用一位陣列存比較方便。

開兩個24的陣列存完直接暴力交換就完事了,搞了兩個小時,才發現這麼簡單,真是自閉魔方。

#include using

namespace

std;

int a[30], b[30

];int

isok()

}return1;

}void

cpy()

intmain()

if(isok())

b[2]=a[6

]; b[

4]=a[8

]; b[

6]=a[10

]; b[

8]=a[12

]; b[

10]=a[14

]; b[

12]=a[16

]; b[

14]=a[2

]; b[

16]=a[4

];

if(isok())

cpy();

b[2]=a[14

]; b[

4]=a[16

]; b[

6]=a[2

]; b[

8]=a[4

]; b[

10]=a[6

]; b[

12]=a[8

]; b[

14]=a[10

]; b[

16]=a[12

];

if(isok())

cpy();

b[3]=a[23

]; b[

4]=a[24

]; b[

23]=a[10

]; b[

24]=a[9

]; b[

10]=a[19

]; b[

9]=a[20

]; b[

19]=a[3

]; b[

20]=a[4

];

if(isok())

cpy();

b[3]=a[19

]; b[

4]=a[20

]; b[

19]=a[10

]; b[

20]=a[9

]; b[

10]=a[23

]; b[

9]=a[24

]; b[

23]=a[3

]; b[

24]=a[4

];

if(isok())

cpy();

b[5]=a[18

]; b[

6]=a[20

]; b[

18]=a[16

]; b[

20]=a[15

]; b[

16]=a[23

]; b[

15]=a[21

]; b[

23]=a[5

]; b[

21]=a[6

];

if(isok())

cpy();

b[5]=a[23

]; b[

6]=a[21

]; b[

23]=a[16

]; b[

21]=a[15

]; b[

16]=a[18

]; b[

15]=a[20

]; b[

18]=a[5

]; b[

20]=a[6

];

if(isok())

cpy();

printf(

"no\n");

}return0;

}

特殊的二階魔方

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述魔方大家應該都玩過。現在有乙個特殊的二階魔方,它只有一面是白色,其餘五個面全是黑色。玩這個魔方當然也有特殊的規則,玩家只能通過六種方式去改變它,底層向左轉一格 稱為dl 底層向右轉一格 稱為dr 右側向上轉一格 稱為ru 右側向...

二階魔方萬能還原公式 二階魔方復原玩法

二階魔方的玩法分為三個步驟,分別是 1 還原底層角塊 2 還原頂面顏色 3 調整頂層角塊,每步結束後分別要達到下圖中的各個狀態。為了更好的說明,圖中灰色部分代表了該步驟中不相關的顏色,只用看標彩色的方塊就行了。第一步 還原底層角塊 這一步我們要將底層的4個角塊都復原,非常簡單,只需要記乙個演算法就好...

藍橋杯 二階魔方旋轉 暴力法

魔方可以對它的6個面自由旋轉。我們來操作乙個2階魔方 如圖1所示 為了描述方便,我們為它建立了座標系。各個面的初始狀態如下 x軸正向 綠 x軸反向 藍 y軸正向 紅 y軸反向 橙 z軸正向 白 z軸反向 黃 假設我們規定,只能對該魔方進行3種操作。分別標記為 x 表示在x軸正向做順時針旋轉 y 表示...