• hdu 5366 (bc #50 1003) The mook jong


    The mook jong

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 269    Accepted Submission(s): 205


    Problem Description
    ![](../../data/images/C613-1001-1.jpg)

    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
     
    数学题...
    f[i]=f[i-1]+f[i-3]+1
    并不知道这个式子怎么推出来的.
    我做的比较麻烦==
    /*************************************************************************
        > File Name: code/bc/#50/1003.cpp
        > Author: 111qqz
        > Email: rkz2013@126.com 
        > Created Time: 2015年08月08日 星期六 19时22分23秒
     ************************************************************************/
    
    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<string>
    #include<map>
    #include<set>
    #include<queue>
    #include<vector>
    #include<stack>
    #define y0 abc111qqz
    #define y1 hust111qqz
    #define yn hez111qqz
    #define j1 cute111qqz
    #define tm crazy111qqz
    #define lr dying111qqz
    using namespace std;
    #define REP(i, n) for (int i=0;i<int(n);++i)  
    typedef long long LL;
    typedef unsigned long long ULL;
    const int inf = 0x7fffffff;
    LL ans [100];
    LL c[70][70];
    LL sum[70][70];
    int n;
    void init()
    {
        memset(c,0,sizeof(c));
        memset(sum,0,sizeof(sum));
        c[2][1]=1;
        c[2][2]=3;
        c[2][3]=6;
        sum[2][1] = 0;
        for ( int i = 1 ; i <= 61 ; i++ )
        {
        c[2][i]=(i)*(i+1)/2;
        sum[2][i]=sum[2][i-1]+c[2][i];
        }
        for ( int i = 3 ; i <= 61 ; i ++)
        {
        for ( int j = 1 ; j <= 61-i ; j++)
        {
            c[i][j]=sum[i-1][j];
            sum[i][j]=sum[i][j-1]+c[i][j];
        }
        }
    
        
        
    }
    LL solve ( int x)
    {
        LL res  = x;
        LL rm;
        LL rem;
        for ( int i = 2; i <= (x+2)/3; i ++)  //摆放的个数
        {
        rm = x - (3*i-2);
        res = res + c[i][rm+1];
        }
        return res;
    }
    int main()
    {
        init();
        for ( int i = 1 ; i <= 61 ; i ++ )
        {
        ans[i] = solve (i);
        }
        while (scanf("%d",&n)!=EOF)
        {
        cout<<ans[n]<<endl;
        }
      
        return 0;
    }
  • 相关阅读:
    Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
    (转)Awesome GAN for Medical Imaging
    (转)Awesome Object Detection
    (转)Awesome PyTorch List
    深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning)
    深度学习课程笔记(十六)Recursive Neural Network
    (转)Multi-Object-Tracking-Paper-List
    深度学习课程笔记(十五)Recurrent Neural Network
    (转)Awsome Domain-Adaptation
    论文阅读:Learning Visual Question Answering by Bootstrapping Hard Attention
  • 原文地址:https://www.cnblogs.com/111qqz/p/4715236.html
Copyright © 2020-2023  润新知