HDU_oj_2047 阿牛的EOF牛肉面
生活随笔
收集整理的這篇文章主要介紹了
HDU_oj_2047 阿牛的EOF牛肉面
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Problem Description 今年的ACM暑期集訓隊一共有18人,分為6支隊伍。其中有一個叫做EOF的隊伍,由04級的阿牛、XC以及05級的COY組成。在共同的集訓生活中,大家建立了深厚的友誼,阿牛準備做點什么來紀念這段激情燃燒的歲月,想了一想,阿牛從家里拿來了一塊上等的牛肉干,準備在上面刻下一個長度為n的只由"E" "O" "F"三種字符組成的字符串(可以只有其中一種或兩種字符,但絕對不能有其他字符),阿牛同時禁止在串中出現O相鄰的情況,他認為,"OO"看起來就像發怒的眼睛,效果不好。
你,NEW ACMer,EOF的崇拜者,能幫阿牛算一下一共有多少種滿足要求的不同的字符串嗎? Input 輸入數據包含多個測試實例,每個測試實例占一行,由一個整數n組成,(0<n<40)。 ? Output 對于每個測試實例,請輸出全部的滿足要求的涂法,每個實例的輸出占一行。 ? Sample Input 1 2 ? Sample Output 3 8 分析: 又是典型的遞歸問題 設n位字符串,
最后一位是O的字符串的個數為a[n],最后一位不是O的字符串的個數是b[n],總字符串個數為x[n], 則有: x[n]=a[n]+b[n]; a[n]=b[n-1]; b[n]=2*x[n-1];
推得: ====>x[n]=2*x[n-1]+2*x[n-2] 注意點: 1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int n; 7 long long fx,fy,fz; 8 while(cin>>n) 9 { 10 fx=3;fy=8; 11 if(n==1) 12 cout<<fx<<endl; 13 else if(n==2) 14 cout<<fy<<endl; 15 else 16 { 17 n-=2; 18 while(n--) 19 { 20 fz=2*fy+2*fx; 21 fx=fy; 22 fy=fz; 23 } 24 cout<<fz<<endl; 25 } 26 } 27 }
你,NEW ACMer,EOF的崇拜者,能幫阿牛算一下一共有多少種滿足要求的不同的字符串嗎? Input 輸入數據包含多個測試實例,每個測試實例占一行,由一個整數n組成,(0<n<40)。 ? Output 對于每個測試實例,請輸出全部的滿足要求的涂法,每個實例的輸出占一行。 ? Sample Input 1 2 ? Sample Output 3 8 分析: 又是典型的遞歸問題 設n位字符串,
最后一位是O的字符串的個數為a[n],最后一位不是O的字符串的個數是b[n],總字符串個數為x[n], 則有: x[n]=a[n]+b[n]; a[n]=b[n-1]; b[n]=2*x[n-1];
推得: ====>x[n]=2*x[n-1]+2*x[n-2] 注意點: 1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int n; 7 long long fx,fy,fz; 8 while(cin>>n) 9 { 10 fx=3;fy=8; 11 if(n==1) 12 cout<<fx<<endl; 13 else if(n==2) 14 cout<<fy<<endl; 15 else 16 { 17 n-=2; 18 while(n--) 19 { 20 fz=2*fy+2*fx; 21 fx=fy; 22 fy=fz; 23 } 24 cout<<fz<<endl; 25 } 26 } 27 }
?
?
轉載于:https://www.cnblogs.com/tenjl-exv/p/8032282.html
總結
以上是生活随笔為你收集整理的HDU_oj_2047 阿牛的EOF牛肉面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gmp会屏蔽掉base里的几个函数
- 下一篇: SocketIO---bio2---带线