problem description
今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛、xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面刻下乙個長度為n的只由」e」 「o」 「f」三種字元組成的字串(可以只有其中一種或兩種字元,但絕對不能有其他字元),阿牛同時禁止在串中出現o相鄰的情況,他認為,」oo」看起來就像發怒的眼睛,效果不好。
你,new acmer,eof的崇拜者,能幫阿牛算一下一共有多少種滿足要求的不同的字串嗎?
ps: 阿牛還有乙個小秘密,就是準備把這個刻有 eof的牛肉乾,作為神秘禮物獻給杭電五十周年校慶,可以想象,當校長接過這塊牛肉乾的時候該有多高興!這裡,請允許我代表杭電的acmer向阿牛表示感謝!
再次感謝!
input
輸入資料報含多個測試例項,每個測試例項佔一行,由乙個整數n組成,(0 < n < 40)
output
對於每個測試例項,請輸出全部的滿足要求的塗法,每個例項的輸出佔一行。
sample input 1 2
sample output
3 8
一、題目分析
這是一道遞推的題目。分析一下:
由於長度是n的字串只有』e』、』o』、』f』組成,並且不能有兩個』o』相連,所以我們假設一共有m(n)種排列的可能。而這m(n)中可能又可以分為一下兩種:
1)最後乙個字元是『o』:
對於這種情況,很顯然第n-1個位置不能是』o』,否則會出現兩個』o』相鄰的情況,所以此時前面n-1個位置有2*m(n-2)種可能。而第n個位置此時是』o』,所以此時共有2* m(n-2)種可能;
2)最後乙個字元不是 『o』:
對於這種情況,那麼對前面n-1個位置沒有特殊的要求,所以對於前面n-1個位置有m(n-1)種可能,而第n個位置有兩種可能,所以此時共有2*m(n-2)種可能
綜上可知,本題的遞推關係為:m(n)=2*[m(n-1)+m(n-2)]
二:**
#include
using
namespace
std;
int main()
HDU 2047 阿牛的EOF牛肉串
problem description 今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛 xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面...
HDU 2047 阿牛的EOF牛肉串
problem description 今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛 xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面...
hdu2047 阿牛的EOF牛肉串
problem description 今年的acm暑期集訓隊一共有18人,分為6支隊伍。其中有乙個叫做eof的隊伍,由04級的阿牛 xc以及05級的coy組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什麼來紀念這段激情燃燒的歲月,想了一想,阿牛從家裡拿來了一塊上等的牛肉乾,準備在上面...