魔方的旋轉方式大致可分為三個(順時針可以通過對應逆時針旋轉三次實現),右面(y)逆時針,後面(x)逆時針,上面(z)逆時針,封裝成三個函式,分析發現,所有的旋轉可以歸結為一圈八個塊的位置輪轉(函式zheng)和乙個側面四個小塊的位置輪換(函式ce)。
不超過5次的操作,可以通過乙個類似深度優先遍歷操作實現(這裡會有很多重複,暫時沒有優化)
#include
#include
using
namespace std;
#define depth 5
class
mofang
,//up 0
,//left 1
,//before 2
,//right 3
,//down 4
//behind 5};
void
zheng
(int p1,
int p2,
int p3,
int p4,
int p5,
int p6,
int p7,
int p8)
voidce(
int p1,
int p2,
int p3,
int p4)
public
:void
add(
int n)
void
turny()
void
turnx()
void
turnz()
intgetsum()
sum +
= tempsum;
tempsum =1;
}return sum;
}int
getmax
(int dep)
turny()
;turny()
; temp =
getsum()
;if(temp>max) max=temp;
if(dep
turny()
;turnx()
; temp =
getsum()
;if(temp>max) max=temp;
if(dep
turnx()
;turnx()
; temp =
getsum()
;if(temp>max) max=temp;
if(dep
turnx()
;turnz()
; temp =
getsum()
;if(temp>max) max=temp;
if(dep
turnz()
;turnz()
; temp =
getsum()
;if(temp>max) max=temp;
if(dep
turnz()
;return max;}}
;int
main()
cout << m.
getmax(1
)<< endl;
return0;
}
位元組跳動秋招2020 8 11筆試記錄
1.可能有多個鬧鐘可以及時到達教室 2.要在所有鬧鐘中找乙個最優解 function gettime arr 輸入部分 varn parseint readline 鬧鐘數目 var rawclocks 原始時間資料 var clocks 所有鬧鐘時間 for let i 0 i n i clock...
題解 2018校招真題(位元組跳動 附加題)
二階魔方又叫小魔方,是2 2 2的立方形結構。每一面都有4個塊,共有24個塊。每次操作可以將任意一面逆時針或者順時針旋轉90 如將上面逆時針旋轉90 操作如下。nero在小魔方上做了一些改動,用數字替換每個塊上面的顏色,稱之為數字魔方。魔方上每一面的優美度就是這個面上4個數字的乘積,而魔方的總優美度...
《位元組跳動》筆試第二題
題目 輸入 第一行輸入乙個數n,表示下邊有幾行。接下來輸入n行,每一行格式為1,2 3,4 5,6.輸出 將重疊部分進行合併的結果,按從小到大輸出。例如 python實現 import sys if name main n input q for i in range n line sys.stdi...