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[],b[];
struct node{
int len,zu[];
node operator * (const int x)const{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
node res;res.len=;
int l=len;
for(int i=,j=l;i<=l;i++,j--)a[i]=zu[j];
for(int i=;i<=l;i++){
b[i]+=a[i]*x;
b[i+]+=b[i]/;
b[i]=b[i]%;
}
while(b[l+]){
l++;
b[l+]=b[l]/;
b[l]%=;
}
res.len=l;
for(int i=,j=l;i<=l;i++,j--){
res.zu[i]=b[j];
}
return res;
}
node operator / (const int x)const{
memset(a,,sizeof(a));
node res;res.len=;
int y=;
for(int i=;i<=len;i++){
a[i]=(y*+zu[i])/x;
y=(y*+zu[i])-a[i]*x;
}
int s=;
while(!a[s])s++;
for(int i=s;i<=len;i++)res.zu[++res.len]=a[i];
return res;
}
}h[];
int main(){
int n;
scanf("%d",&n);
h[].len=;h[].zu[]=;
for(int i=;i<=n;i++){
h[i]=h[i-]*(*i-)/(i+);
}
for(int i=;i<=h[n].len;i++)printf("%d",h[n].zu[i]);
return ;
}

洛谷P2532 [AHOI2012]树屋阶梯(Catalan数)的更多相关文章

  1. 【题解】洛谷P2532 [AHOI2012]树屋阶梯(卡特兰数+高精)

    洛谷P2532:https://www.luogu.org/problemnew/show/P2532 思路 来自Sooke大佬的推导: https://www.luogu.org/blog/Sook ...

  2. BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]

    2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 779  Solved: 453[Submit][Status] ...

  3. P2532 [AHOI2012]树屋阶梯 卡特兰数

    这个题是一个卡特兰数的裸题,为什么呢?因为可以通过划分来导出递推式从而判断是卡特兰数,然后直接上公式就行了.卡特兰数的公式见链接. https://www.luogu.org/problemnew/s ...

  4. Luogu P2532 [AHOI2012]树屋阶梯 卡特兰数

    接着压位OvO... 我不会告诉你答案就是卡特兰数... 为什么呢? 首先,$ans[0]=1,ans[1]=1,ans[2]=2$ 对于$ans[3]$,我们可以发现他是这样来的: $ans[3]= ...

  5. P2532 [AHOI2012]树屋阶梯

    题目:P2532 [AHOI2012]树屋阶梯 思路: 打表之后不难看出是裸的Catalan数.简单证明一下: 对于任意一种合法方案,都可以表示为在左下角先放一个\(k*(n+1-k),k\in[1, ...

  6. bzoj2822[AHOI2012]树屋阶梯(卡特兰数)

    2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 879  Solved: 513[Submit][Status] ...

  7. BZOJ2822[AHOI2012]树屋阶梯——卡特兰数+高精度

    题目描述 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为N+1尺(N为 ...

  8. BZOJ2822:[AHOI2012]树屋阶梯(卡特兰数,高精度)

    Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为 ...

  9. [bzoj2822][AHOI2012]树屋阶梯 (卡特兰数+分解质因数+高精度)

    Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为 ...

随机推荐

  1. [Android] Gradle 安装

    Gradle安装非常简单,只要从官网下载压缩包,解压,修改一下环境变量即可. 笔者写本篇随笔时,版本是1.12. Windows下安装 1 到官网(http://www.gradle.org/down ...

  2. es6技巧写法

    为class绑定多个值 普通写法 :class="{a: true, b: true}" 其他 :class="['btn', 'btn2', {a: true, b: ...

  3. Dictionary and KeyValuePair关系

    简单一句话: Dictionary 是 由 KeyValuePair结构 组成的集合 The Dictionary<TKey, TValue>.Enumerator.Current pro ...

  4. POJ 2976 Dropping tests:01分数规划【二分】

    题目链接:http://poj.org/problem?id=2976 题意: 共有n场考试,每场考试你得的分数为a[i],总分为b[i]. 你可以任意去掉k场考试. 问你最大的 100.0 * ( ...

  5. Linux下Fork与Exec

    一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期 ...

  6. android自定义控件(二) 入门,继承View

    转载请注明地址:http://blog.csdn.net/ethan_xue/article/details/7313788 ps: 可根据apidemo里LableView,list4,list6学 ...

  7. python2.7 爬虫初体验爬取新浪国内新闻_20161130

    python2.7 爬虫初学习 模块:BeautifulSoup requests 1.获取新浪国内新闻标题 2.获取新闻url 3.还没想好,想法是把第2步的url 获取到下载网页源代码 再去分析源 ...

  8. 【Python】数组排序

    1.numpy库:argsort() argsort函数返回的是数组值从小到大的索引值(升序排列) 一维: In [1]: import numpy as np In [2]: x = np.arra ...

  9. poj3254二进制放牛——状态压缩DP

    题目:http://poj.org/problem?id=3254 利用二进制压缩状态,每一个整数代表一行的01情况: 注意预处理出二进制表示下没有两个1相邻的数的方法,我的方法(不知为何)错了,看到 ...

  10. Oracle中的float类型字段

    Oracle中的float类型对应着C#中的decimal类型