給定a,b,c三根足夠長的細柱,在a柱上放有2n個中間有空的圓盤,共有n個不同的尺寸,每個尺寸都有兩個相同的圓盤,注意這兩個圓盤是不加區分的(下圖為n=3的情形)。現要將 這些國盤移到c柱上,在移動過程中可放在b柱上暫存。要求:
(1)每次只能移動乙個圓盤;
(2) a、b、c三根細柱上的圓盤都要保持上小下大的順序;
任務:設an為2n個圓盤完成上述任務所需的最少移動次數,對於輸入的n,輸出an。
乙個正整數n,表示在a柱上放有2n個圓盤。
僅一行,包含乙個正整數,為完成上述任務所需的最少移動次數an。
sample input1:
sample input2:
sample output1:
sample output2:
【限制】
對於50%的資料, 1<=n<=25
對於100% 資料, 1<=n<=200
【提示】 設法建立an與an-1的遞推關係式。
設f[i]表示a柱放2*i個圓盤的最少移動步數,則有
f[i]=f[i-1]*2+2
其中f[1]=2,上式子的含義是,先把除了當前最大的兩個盤子的其他盤子(即2*(i-1)個盤子的最少移動步數)移動到b柱,然後把最大的兩個盤子移動到c柱,最後再把2*(i-1)個盤子移動到c柱。
注意2^200要用高精度。
#include#define m 1000000
using namespace std;
int n,f[210];
int getlen(int x)
return l;
}int main()
while(f[f[0]+1]>0) f[0]++;
} printf("%d",f[f[0]]);
for(int i=f[0]-1;i>0;i--)
return 0;
}
noip2007 獎學金 (排序)
a1159.獎學金 時間限制 1.0s 記憶體限制 256.0mb 總提交次數 797ac次數 339 平均分 60.95 將本題分享到 檢視未格式化的試題 提交試題討論 試題 noip2007 普及組 問題描述 某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,...
NOIP2007解題報告
第一題 某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 109 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。解題過程 直接sort快拍然後掃瞄一遍即可。第二題 在初賽普及組的 閱讀程式寫結果 的問題中,我...
NOIP2007 普及組 獎學金
獎學金 問題描述 某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的...