• HDU-5366-The mook jong


    Problem Description
    ZJiaQ want to become a strong man, so he decided to play the mook jong。ZJiaQ want to put some mook jongs in his backyard. His backyard consist of n bricks that is 1*1,so it is 1*n。ZJiaQ want to put a mook jong in a brick. because of the hands of the mook jong, the distance of two mook jongs should be equal or more than 2 bricks. Now ZJiaQ want to know how many ways can ZJiaQ put mook jongs legally(at least one mook jong).

    Input
    There ar multiply cases. For each case, there is a single integer n( 1 < = n < = 60)

    Output
    Print the ways in a single line for each case.

    Sample Input
    1
    2
    3
    4
    5
    6

    Sample Output
    1
    2
    3
    5
    8
    12

    Source
    BestCoder Round #50 (div.2)

    ——————————并不华丽的分界线—————————————–

    题目大意:ZJiaQ为了强身健体,决定通过木人桩练习武术。ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里。由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法。

    假设用f[n]表示有n个地板时所有的可能情况,那么可以分为两种情况。
    一种是如果在第n个地板上不放置木桩的情况,一种是如果在第n个地板上放置木桩的情况。
    对于第一种情况,可能的方案就为f[n-1],因为不在这个地板上放置木桩,所以等同于有n-1个地板可以放置的方案数。
    而对于第二种情况,我们知道,如果在第n个木板上放置木桩,那么上一个放置木桩的地方最近可以为n-3的地方,也就是说等同于在n-3个木板上放置木桩的最大方案数,但是因为在n-3个地板上放置的方案数不包括一个木桩都不放的情况,而如果仅在第n个木桩放置木桩,那么则需要加一。
    由此可以得到递推关系:f[n] = f[n-1] + f[n-3] + 1;
    那么这道题就非常容易了。
    代码如下

    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    typedef long long LL;
    
    int main()
    {
        LL n;
        LL f[61];
        f[1] = 1;
        f[2] = 2;
        f[3] = 3;
        for(int i = 4; i <= 60; i++){
            f[i] = f[i-1] + f[i-3] + 1;
        }
        while(~scanf("%lld",&n)){
            printf("%lld
    ",f[n]);
        }
        return 0;
    }

    如有哪里疏漏,请各位大牛指正。

  • 相关阅读:
    【设计模式学习笔记】之 装饰者模式
    【实操笔记】MySQL主从同步功能实现
    Centos6.7安装mysql 5.6简单教程
    【转载备忘】PowerDesigner16.5基本使用
    win10安装配置jdk的环境变量
    eclipse配置虚拟路径后,每次启动tomcat都会虚拟路径失效的问题解决
    Tomcat配置虚拟路径访问容器外的硬盘资源
    编写代码常用快捷键
    python爬虫之scrapy框架介绍
    python面试题(一)
  • 原文地址:https://www.cnblogs.com/wiklvrain/p/8179490.html
Copyright © 2020-2023  润新知