hdu 2563 统计问题
来源:互联网 发布:鹿王羊绒线淘宝网 编辑:程序博客网 时间:2024/05/20 14:17
统计问题
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5282 Accepted Submission(s): 3098
Problem Description
在一无限大的二维平面中,我们做如下假设:
1、 每次只能移动一格;
2、 不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);
3、 走过的格子立即塌陷无法再走第二次;
求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。
1、 每次只能移动一格;
2、 不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);
3、 走过的格子立即塌陷无法再走第二次;
求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。
Input
首先给出一个正整数C,表示有C组测试数据
接下来的C行,每行包含一个整数n (n<=20),表示要走n步。
接下来的C行,每行包含一个整数n (n<=20),表示要走n步。
Output
请编程输出走n步的不同方案总数;
每组的输出占一行。
每组的输出占一行。
Sample Input
212
Sample Output
37
设第n步的走法为F(n),往上走的步数为a(n),往左或往右走的步数为b(n);
所以F(n)=a(n)+b(n);接下来分别找前一个状态。因为不能往下走,所以向上走的步数只有一种选择就是上一次的步数相加:a(n)=a(n-1)+b(n-1)(前(n-1)步内往上走的步数+前(n-1)步内往左或右的步数);向上走可以是左上和右上两种,因此b(n)=2*a(n-1)+b(n-1);化简得F(n)=2*F(n-1)+F(n-2);
#include <iostream>using namespace std;int f[21];int main(){ f[0]=1; f[1]=3; f[2]=7; for (int i=3; i<21; i++) { f[i]=2*f[i-1]+f[i-2]; } int t,n; cin>>t; while (t--) { cin>>n; cout<<f[n]<<endl; } return 0;}
0 0
- HDU 2563 统计问题
- HDU 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- hdu-2563-统计问题
- hdu 2563 统计问题
- HDU 2563 统计问题
- hdu 2563 统计问题
- HDU - 2563 - 统计问题
- HDU-2563-统计问题
- HDU 2563 统计问题
- hdu 2563 统计问题
- hdu 2563 统计问题
- HDU 2563 统计问题
- HDU 2563 统计问题
- HDU 2563 统计问题
- hdu 2112(最短路+字典树)
- ArcGIS教程:图层组的使用方法
- Coursera_Stanford密码学公开课 Programming Assignment 6
- Android App监听软键盘按键的三种方式
- android实现余额宝收益播报中数字显示动态效果
- hdu 2563 统计问题
- 三大连接池的参数说明
- 普通WCF应用程序使用SVC文件寄宿WF 4.0服务
- 全局变量、extern/static/const区别与联系
- nutch1.7 url过滤规则
- 基于UKey数字证书实现身份认证
- 软件开发人员的出路
- 矩阵练习
- MJParallaxCollectionView 视差滑动效果