Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5804 Accepted Submission(s): 3864
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int dp[35][2];//dp[i][0]表示最后一列是以1x1的砖结尾,dp[i][1]表示以2x2的砖结尾 int main() { dp[1][0]=1; dp[2][0]=1; dp[2][1]=2; for(int i=3;i<=30;i++) { dp[i][0]=(dp[i-1][0]+dp[i-1][1]); dp[i][1]=(dp[i-2][1]+dp[i-2][0])*2;//2x2 的砖在上或者在下 } int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); printf("%d\n",dp[n][0]+dp[n][1]); } return 0; }
原文:http://www.cnblogs.com/program-ccc/p/5223159.html