hdu5983的一道題,看錯了輸入,看了題解發現用一位陣列存比較方便。
開兩個24的陣列存完直接暴力交換就完事了,搞了兩個小時,才發現這麼簡單,真是自閉魔方。
#include usingnamespace
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 表示...