您的位置:首页 > 其它

hdu 1143 Tri Tiling

2013-03-26 20:21 288 查看
题意:一个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
<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: