hdu 1143 Tri Tiling

来源:互联网 发布:手机淘宝上的卖家中心 编辑:程序博客网 时间:2024/05/15 01:39

题意:一个3*N的矩形用2*1的矩形可以有好多种方法填满。。

思路:当N为奇数时,肯定是没有一种方法可以填满,所以为0;当N为偶数时,除了F[2]*3,其余都是乘2(这是特殊情况),不怎么好表达,题目中图,那就是乘2的情况;

代码:

#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){  int n,f[31],i,j;  while(cin>>n)  {    if(n==-1)      break;    memset(f,0,sizeof(f));    f[0]=1;    for(i=2;i<=30;i+=2)    {       for(j=2;j<=i;j+=2)       {         if(j==2)             f[i]+=3*f[i-j];         else             f[i]+=2*f[i-j];       }    }    cout<<f[n]<<endl;  }  return 0;}

原创粉丝点击