The mook jong

 Accepts: 506
 Submissions: 1281
 Time Limit: 2000/1000 MS (Java/Others)
 Memory Limit: 65536/65536 K (Java/Others)
问题描写叙述
ZJiaQ为了强身健体。决定通过木人桩练习武术。

ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里。

因为ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,因为木人桩手比較长。所以两个木人桩之间地砖必须大于等于两个,如今ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法。
输入描写叙述
输入有多组数据。每组数据第一行为一个整数n(1 < = n < = 60)
输出描写叙述
对于每组数据输出一行表示摆放方案数
输入例子
1
2
3
4
5
6
输出例子
1
2
3
5
8
12
这个题目有一个递推关系就是f[n]=f[n-1]+f[n-3]+1
怎么来的呢。就是当1*n-1个格子扩展到1*n的格子时,
当多出来的那一个格子为0时,数量=f[n-1]
当多出来的那一个格子为1时,数量=f[n-3]再加上新来的那个为1的格子,多了一种排法,即f[n-3]+1
事实上一个循环全然能够做,但当时着急对着这个公式写了一个递归,结果到五十几的时候出不来结果 ,太慢了,索性由于输入也不多就直接打表。。。
代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; int num;
long long a[65]; int main()
{
a[1]=1;
a[2]=2;
a[3]=3;
a[4]=5;
a[5]=8;
a[6]=12;
a[7]=18;
a[8]=27;
a[9]=40;
a[10]=59;
a[11]=87;
a[12]=128;
a[13]=188;
a[14]=276;
a[15]=405;
a[16]=594;
a[17]=871;
a[18]=1277;
a[19]=1872;
a[20]=2744;
a[21]=4022;
a[22]=5895;
a[23]=8640;
a[24]=12663;
a[25]=18559;
a[26]=27200;
a[27]=39864;
a[28]=58424;
a[29]=85625;
a[30]=125490;
a[31]=183915;
a[32]=269541;
a[33]=395032;
a[34]=578948;
a[35]=848490;
a[36]=1243523;
a[37]=1822472;
a[38]=2670963;
a[39]=3914487;
a[40]=5736960;
a[41]=8407924;
a[42]=12322412;
a[43]=18059373;
a[44]=26467298;
a[45]=38789711;
a[46]=56849085;
a[47]=83316384;
a[48]=122106096;
a[49]=178955182;
a[50]=262271567;
a[51]=384377664;
a[52]=563332847;
a[53]=825604415;
a[54]=1209982080;
a[55]=a[54]+a[52]+1;
a[56]=a[55]+a[53]+1;
a[57]=a[56]+a[54]+1;
a[58]=a[57]+a[55]+1;
a[59]=a[58]+a[56]+1;
a[60]=a[59]+a[57]+1;
while(cin>>num)
{
cout<<a[num]<<endl;
} return 0;
}

HDU 5366:The mook jong 递推的更多相关文章

  1. HDU 5366 The mook jong (简单DP)

    题意:ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里.由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两 ...

  2. HDU 5366 The mook jong

    先暴力写了一个DFS,然后找规律.. #include<cstdio> #include<cstring> #include<cmath> #include< ...

  3. HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  4. 题解报告:hdu 2084 数塔(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这 ...

  5. HDU 5965 三维dp 或 递推

    题意:= =中文题 思路一:比赛时队友想的...然后我赛后想了一下想了个2维dp,但是在转移的时候,貌似出了点小问题...吧?然后就按照队友的思路又写了一遍. 定义dp[i][j][k],表示第i列, ...

  6. HDU 2569(简单的递推)

    彼岸 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  7. hdu 2050 折线分割平面 (递推)

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  8. hdu 1284 钱币兑换问题 (递推 || DP || 母函数)

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  9. hdu 5171(矩阵快速幂,递推)

    GTY's birthday gift Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

随机推荐

  1. spring常用的注解

    一.使用注解之前要开启自动扫描功能,其中base-package为需要扫描的包(含子包). <context:component-scan base-package="cn.test& ...

  2. 脑阔疼的双层SQLserver游标

    本来简单的双层游标没啥的,内层游标需要读取的是视图的内容,一直报“当前命令发生了严重错误.应放弃任何可能产生的结果.”的错误.无可奈何尝试先将视图的数据放到表变量中,之后再用游标遍历表变量. 简直很怀 ...

  3. Disqus 升级到3.0以上版本的评论同步问题

    Disqus从2.*升级3.*时,Knowlege Base的文章不显示Disqus评论, 解决方法:在Disqus的Advanced Settings中勾选Render Comments JavaS ...

  4. 九度oj 题目1252:回文子串

    题目描述: 输入一个字符串,输出该字符串中对称的子字符串的最大长度. 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4. 输入: 存在多组数据,每组数据一行字 ...

  5. Python之窗口操作之find_window,set_foreground等

    在自动化测试过程中,常常需要模拟按键的操作,比如像窗口发送一个按键,实现鼠标点击的功能,在上一篇文章中,我和大家讨论了python文件生成为不依赖与python库的exe文件的方式(需要了解的朋友戳这 ...

  6. BZOJ 1974 [Sdoi2010]auction 代码拍卖会 ——动态规划

    把每一位上不递减的数拆成1+11+11111+11111+..... 然后就可以把巨大的N从复杂度中消掉,因为随着长度的增加1...111%p出现了循环节. 然后就是从n个数中选出几个使他们结果为0( ...

  7. USACO Party Lamps

    题目大意:一排灯有n个,有4种开关,每种开关能改变一些灯现在的状态(亮的变暗,暗的变亮)现在已知一些灯的亮暗情况,问所以可能的情况是哪些 思路:同一种开关开两次显然是没效果的,那么枚举每个开关是否开就 ...

  8. P2949 [USACO09OPEN]工作调度Work Scheduling

    题目描述 约翰有太多的工作要做.为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有10^8个单位时间.在任一时刻,他都可以选择编号1~N的N(1 <= ...

  9. bzoj2144 跳跳棋 二分

    [bzoj2144]跳跳棋 Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位 ...

  10. bzoj2286 (sdoi2011)消耗战(虚树)

    [Sdoi2011]消耗战 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 4052  Solved: 1463[Submit][Status][Dis ...