Posted on 2010-02-15 22:08
Initiate 阅读(312)
评论(0) 编辑 收藏 引用
这个题是2506的加强版,思路是一样的。
独立的可递推情况变得更多。
独立2列时有3种,而独立4列,6列,8列……所有偶数列都有两种
于是这个递推公式复杂一些
f(n)=3*f(n-2)+2*f(n-4)+2*f(n-6)+2*f(n-8)…………
这两个题f(0)都是1,很有意思~。一开始就这里WA了。
#include<iostream>
using namespace std;
//f(n)=3*f(n-2)+2*f(n-4)+2*f(n-6)……
int f[50];
int main()
{
int i,j,t;
f[0]=1;
f[1]=0;
f[2]=3;
for(i=4;i<=30;i++)
{
f[i]=3*f[i-2];
for(j=2; ;j++)
{
t=i-2*j;
if(t<0)break;
else
f[i]+=2*f[t];
}
}
while(cin>>t)
{
if(t==-1)break;
cout<<f[t]<<endl;
}
}
阅读全文
类别:Poj 查看评论