今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛、xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面刻下乙個長度為n的只由"e" "o" "f"三種字元組成的字串(可以只有其中一種或兩種字元,但絕對不能有其他字元),阿牛同時禁止在串中出現o相鄰的情況,他認為,"oo"看起來就像發怒的眼睛,效果不好。
你,new acmer,eof的崇拜者,能幫阿牛算一下一共有多少種滿足要求的不同的字串嗎?
ps: 阿牛還有乙個小秘密,就是準備把這個刻有 eof的牛肉乾,作為神秘禮物獻給杭電五十周年校慶,可以想象,當校長接過這塊牛肉乾的時候該有多高興!這裡,請允許我代表杭電的acmer向阿牛表示感謝!
再次感謝!
input
輸入資料報含多個測試例項,每個測試例項佔一行,由乙個整數n組成,(0output
對於每個測試例項,請輸出全部的滿足要求的塗法,每個例項的輸出佔一行。
sample input
1解題思路:因 o o 不能相連 分析f(n-1)項 第n -1項 有兩種情況 : 以o結尾 連e/f 或者 以e/f結尾 可以連o/e/f2
這是一道遞迴題,遞推公式:f(n)=2*f(n-1)+2*f(n-2),推導方法:
設f(n-1)中以o結束的字串有s(n-1)個,以e或f結束的字串有t(n-1)個,則易得f(n)=2*s(n-1)+3*t(n-1)=2*(s(n-1)+t(n-1))+t(n-1)=2*f(n-1)+t(n-1)。由於f(n-2)中的任意字串均能增添e或f,故而t(n-1)=2*f(n-2).所以f(n)=2*f(n-1)+t(n-1)=2*f(n-1)+2*f(n-2)
#include using namespace std;
int main()
; int n,i;
for(i=3;i<=39;i++) a[i]=2*a[i-1]+2*a[i-2];
while(cin>>n)
return 0;
}
阿牛的EOF牛肉串
題目描述 今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛 xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面刻下乙個長度為n的只由 e o...
阿牛的EOF牛肉串
problem description 今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛 xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面...
阿牛的EOF牛肉串
今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛 xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面刻下乙個長度為n的只由 e o f 三種...