zoukankan      html  css  js  c++  java
  • 树屋阶梯(卡特兰数+高精除低精+高精乘低精)

    树屋阶梯

    来源:
    安徽省选 2012
    题目描述:
      暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题。由于地上露营湿气重,必须选择在高处的树屋露营。小龙分配的树屋建立在一颗高度为 N+1 尺(N 为正整数)的大树上,正当他发愁怎么爬上去的时候,发现旁边堆满了一些空心四方钢材,经过观察和测量,这些钢材截面的宽和高大小不一,但都是 1 尺的整数倍,教官命令队员们每人选取 N 个空心钢材来搭建一个总高度为 N 尺的阶梯来进入树屋,该阶梯每一步台阶的高度为 1 尺,宽度也为 1 尺。如果这些钢材有各种尺寸,且每种尺寸数量充足,那么小龙可以有多少种搭建方法?(注:为了避免夜里踏空,钢材空心的一面绝对不可以向上。)
    以树屋高度为 4 尺、阶梯高度 N=3 尺为例,小龙一共有5 种搭建方法。
    输入描述:
    一个正整数N(1≤N≤500) ,表示阶梯的高度。
    输出描述:
    一个正整数,表示搭建方法的个数。(注:搭建方法个数可能很大。)
    样例输入:
    3
    样例输出:
    5

    #include<iostream>
    using namespace std;
    const int maxn=100001;
    int n,len,f[maxn],ans[maxn];
    void mul(int x)
    {
        for(int i=1;i<=len;i++)
        ans[i]=ans[i]*x;
        for(int i=1;i<=len;i++)
        if(ans[i]>9)
        {
            ans[i+1]=ans[i+1]+ans[i]/10;
            ans[i]=ans[i]%10;
        }
        while(ans[len+1])
        {
            len++;
            ans[len+1]=ans[len+1]+ans[len]/10;
            ans[len]=ans[len]%10;
        }
    }
    void div(int x)
    {
        int a[maxn],b[maxn],tmp=0;
        for(int i=1;i<=len;i++)
        a[i]=ans[len-i+1];
        for(int i=1;i<=len;i++)
        {
            b[i]=(tmp*10+a[i])/x;
            tmp=(tmp*10+a[i])%x;
        }
        for(int i=1;i<=len;i++)
        ans[i]=b[len-i+1];
        while(!ans[len]&&len>1)
        len--;
    }
    void work(int k)
    {
        mul(4*k-2);
        div(k+1);
    }
    int main()
    {
        f[0]=f[1]=1;
        ans[1]=1,len=1;
        cin>>n;
        for(int i=2;i<=n;i++)
        work(i);
        for(int i=len;i>=1;i--)
        cout<<ans[i];
        return 0;
    }
  • 相关阅读:
    ElasticSearch基础之批量操作(mget+mbulk)
    ElasticSearch基础+文档CRUD操作
    Flask_restful 插件实战笔记——基本概念与使用
    Django rest framework之序列化小结
    我所理解的Restful API最佳实践
    ElasticSearch入门及核心概念介绍
    生产环境下Flask项目目录构建
    利用linq的Take Skip方法解决 集合拆分的问题
    Oracle trunc() 函数处理数字、日期的整理
    左连接条件与where条件的区别
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070946.html
Copyright © 2011-2022 走看看