您的位置:首页 > 其它

hdu 5366 简单递推

2015-08-09 13:55 239 查看
记f[i]为在长度是i的格子上面至少放一个木桩的方法数。考虑第i个格子,有放和不放两种情况。

1.如果第i个格子放了一个木桩,则i - 1和i - 2格子上面不能放木桩,方案数为:f[i - 3] + 1

2.如果第i个格子没有放木桩,则方案数为:f[i - 1]

然后递推即可。

#include <iostream>
using namespace std;

typedef long long ll;
const int N = 61;
ll f
;

void init()
{
f[1] = 1;
f[2] = 2;
f[3] = 3;
for ( int i = 4; i < N; i++ )
{
f[i] = f[i - 1] + f[i - 3] + 1;
}
}

int main ()
{
init();
int n;
while ( cin >> n )
{
cout << f
<< endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: