hdu 5366 The mook jong

用dp[i]表示第i种的情况,第i个上放一个木人,共有dp[i-3]+1种情况。不放木人共有dp[i-1]种情况。所以dp[i]=dp[i-1]+1+dp[i-3]。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

__int64 dp[1000];

int main()
{
    dp[1]=1;dp[2]=2;dp[3]=3;dp[4]=5;
    for(int i=5;i<=60;i++)
    {
        dp[i]=dp[i-1]+1+dp[i-3];
    }
    int n;
    while(~scanf("%d",&n))
    {
        printf("%I64d\n",dp[n]);
    }
    return 0;
}

你可能感兴趣的:(hdu 5366 The mook jong)