南陽 88 漢莫塔(1)

2021-06-20 01:21:47 字數 727 閱讀 2514

分析:

漢諾塔移動次數:

漢諾塔移動次數公式:f (m+1)=f (m) * 2 + 1;

此題如果用要求十進位制最後六位,f(m+1)=(f(m)*2+1)%1000000;

每次輸入層數,求出移動次數,但如果輸入資料很大,利用此公式必定超時,經過多次測試,

發現若輸入資料大於100005,有如下規律,如:

f(123456)=f(23456); f(123456789)=f(23456789)---=f(56789)

即略去最高位,

但 if(m%100000<6)則需進行此操作 m=100000+m%10;

#includeint num[100008]; 

int main()

return 0;

}

高次方求模
#includelong long s, w;

int q(int n)

return s;

}int main()

}

南陽理工oj88 漢諾塔(一)

題目鏈結。include 測試一下49999和50000,1000000,1000000000你會發現規律.關鍵是9個0的那個超大數輸出的必須要快,否則超時.int nunu int a return m int main return 0 1 1 2 3 3 7 4 15 5 31 6 63 7 ...

漢諾塔(一) nyist88

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在印度,有這麼乙個古老的傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有乙個...

NYOJ 題目88 漢諾塔(一)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在印度,有這麼乙個古老的傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有乙個...