阿牛的EOF牛肉串 HDU 2047

2021-09-02 16:39:16 字數 1085 閱讀 3312

今年的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

2

解題思路:因 o o 不能相連 分析f(n-1)項   第n -1項 有兩種情況 : 以o結尾  連e/f  或者 以e/f結尾 可以連o/e/f  

這是一道遞迴題,遞推公式: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 三種...