hdu.2045 不容易系列之(3)—— LELE的RPG难题
//这题主要难在前面的三个不规律答案,(写一下就能出,题主偷懒不想写WA了几次,后面乖啦就过了),后面的递推式子f(n)=f(n-1)+2*f(n-2)。
后面的式子呢f(n-1)容易理解,就是n-1项和第一项不同,所以第N项只能选一个色。
f(n-2)项呢就有点难度,n-1项和第1项相同的情况下,那么第n项和第n-2项肯定和第一项色不同,而第n项的数目可以用第n-2项的数目来表示,即:f(n-2)*2
AC代码:
#include<iostream>
#include<cstdlib>
using namespace std;
long long a[51];
long long sum(int n)
{
if(n==1)
return 3;
if(n==2)
return 6;
if(n==3)
return 6;
if(a[n]==0)
{
a[n]=sum(n-1)+2*sum(n-2);
}
return a[n];
}
int main()
{
for(int i=0;i<51;i++)
{
a[i]=0;
}
int n;
while(cin>>n)
{
cout<<sum(n)<<endl;
}
return 0;
}