您的位置:首页 > 其它

hdu 2563 统计问题(递推)

2015-08-14 22:58 330 查看
原题链接:
http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=3§ionid=1&problemid=8
分析:

分直走和左右走。

直走:

直走每一步都可直走,所以有a[ i ]=F [ i-1 ].

左右走:

①上一步直走,则可左右走,所以有 a[ i-1 ] * 2 .

②上一步左右走,则只可左右走,所以有 b[ i-1 ].

F[ i ] =F [ i-1 ]+a[ i-1 ]*2+b [ i -1 ]

=2*F[ i-1 ]+ a[i-1]

=2*F[ i-1 ]+F[ i-2 ]

代码如下:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
long long dt[25] = {0,3,7};
int main()
{
for (int i = 3; i <= 20; i++)
dt[i] = 2 * dt[i - 1] + dt[i - 2];
int T;
scanf("%d", &T);
while (T--)
{
int n;
scanf("%d", &n);
printf("%d\n", dt
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: