// hdoj 1143-Tri Tiling /* * 递推题 * n为奇数时 a[n]=0,n=2 时有三种方案 * 有a[i]+=3*a[i-2] * 仔细观察图形发现n>2且中间交叉的情况只有两种: * — — * | — | * | — | (n=4) * * | — | * | — | * — — (n=4) * 有a[i]+=2*a[i-j] (j>=4) * ac 284k 0ms */ #include <iostream> using namespace std; int a[32],n; void creat() { a[0]=1; a[2]=3; for(int i=4; i<=30; i+=2){ a[i]+=a[i-2]*3; for(int j=4; j<=i; j+=2) a[i]+=2*a[i-j]; } } int main() { creat(); while(cin>>n&&n!=-1){ cout<<a[n]<<endl; } }