题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2047
题目大意:用E O F三个字符组成字符串要求OO不能相邻
关键思想:画出树,考察0和非0个数的关系。
代码如下:
#include <iostream> using namespace std; long long dp[40]={0,1,2}; int main(){ int n; for(int i=3;i<41;i++){ dp[i]=(dp[i-1]+dp[i-2])*2; } while(cin>>n){ cout<<dp[n]+dp[n+1]<<endl; } return 0; }