zoukankan      html  css  js  c++  java
  • 洛谷P2532 [AHOI2012]树屋阶梯(Catalan数)

    P2532 [AHOI2012]树屋阶梯

    题目描述

    输入输出格式

    输入格式:

    一个正整数N(1<=N<=500),表示阶梯的高度。

    输出格式:

    一个正整数,表示搭建方法的个数。(注:搭建方法的个数可能很大)

    输入输出样例

    输入样例#1:
    3
    输出样例#1:
    5

    说明

    40%的数据:1<=N<=20

    80%的数据:1<=N<=300

    100%的数据:1<=N<=500

    /*
        Catalan数套个高精
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int a[1010],b[1010];
    struct node{
        int len,zu[1010];
        node operator * (const int x)const{
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            node res;res.len=0;
            int l=len;
            for(int i=1,j=l;i<=l;i++,j--)a[i]=zu[j];
            for(int i=1;i<=l;i++){
                b[i]+=a[i]*x;
                b[i+1]+=b[i]/10;
                b[i]=b[i]%10;
            }
            while(b[l+1]){
                l++;
                b[l+1]=b[l]/10;
                b[l]%=10;
            }
            res.len=l;
            for(int i=1,j=l;i<=l;i++,j--){
                res.zu[i]=b[j];
            }
            return res;
        }
        node operator / (const int x)const{
            memset(a,0,sizeof(a));
            node res;res.len=0;
            int y=0;
            for(int i=1;i<=len;i++){
                a[i]=(y*10+zu[i])/x;
                y=(y*10+zu[i])-a[i]*x;
            }
            int s=1;
            while(!a[s])s++;
            for(int i=s;i<=len;i++)res.zu[++res.len]=a[i];
            return res;
        }
    }h[510];
    int main(){
        int n;
        scanf("%d",&n);
        h[0].len=1;h[0].zu[1]=1;
        for(int i=1;i<=n;i++){
            h[i]=h[i-1]*(4*i-2)/(i+1);
        }
        for(int i=1;i<=h[n].len;i++)printf("%d",h[n].zu[i]);
        return 0;
    }
  • 相关阅读:
    [ZJOI2014]力
    [八省联考2018]劈配
    [APIO2007]动物园
    [九省联考2018]IIIDX
    [HAOI2015]树上染色
    [SHOI2008]堵塞的交通
    暑假第五周
    暑假第四周
    暑假第三周
    暑假第二周
  • 原文地址:https://www.cnblogs.com/thmyl/p/7435947.html
Copyright © 2011-2022 走看看