0 Judge
Code: 0
你知道御坂美琴總共有$20002$位妹妹嗎?通常把她們簡稱為御坂妹妹,由於平時這些妹妹沒有什麼事情可以做,一位實驗室的研究員拿了一個古老的玩具「河內塔」給大家打發時間。由於妹妹們的記憶能力彼此相通,因此他們可以構成一個驚人的神經網路計算任何事物,一般的河內塔輕而易舉的就被妹妹們破解了,得到答案的研究員覺得記憶相通的能力十分有趣,要提高問題的難度來考驗她們的能力:找出$4$根杆子的河內塔的最佳策略,如何使用最少的移動步數把所有盤子從$1$號柱子移動到$4$號柱子。
經過了些許時間,御坂妹妹給出了下列的演算法,假設$m$杆$n$盤的最少步為函數$f(m,n)$:
根據御坂妹妹的演算能力,可以保證上演算法可以找出$4$根杆子的河內塔最少的移動步數,不過此時妹妹們已經消耗了極為大量的腦力,暫時無法活動。因此獲得了這一個演算法的你,可以親自操作河內塔來驗證方法的正確性嗎?
本題為互動題,提供以下三個函數可供使用,如果操作不合法的操作可能會得到$WA$或是$RE$:
int init();
回傳一個數字,表示盤子的數量$N$,請在程式一開始執行時呼叫此函數,本函數只能使用一次。
void move(int k,int from,int to);
把編號k的盤子從桿子from移動到桿子to
void finish();
表示執行完所有移動,結束程式。
保證:$0\leq N < 64$。
本題目沒有輸出。輸出任何文字會得到$WA$。
N = 4
最佳解只要9個步驟
int main(){
int n = init();
move(1,1,2);
move(2,1,4);
move(3,1,3);
move(2,4,3);
move(4,1,4);
move(2,3,1);
move(3,3,4);
move(2,1,4);
move(1,2,4);
finish();
return 0;
}