P2532 [AHOI2012]树屋阶梯($Catalan$数高精度)
P2532 [AHOI2012]树屋阶梯(Catalan数&高精度)
题目传送门
思路:卡特兰数的变形,可根据包含直角点的矩形覆盖的阶梯点的位置进行加法原理,然后对每个情况进行乘法原理,可以得到卡特兰数的递推式的形式。
根据左上角阶梯的方案数 × \times ×右下角阶梯形的方案数 = = =该情况方案数
由上图可知:图1为 h ( 0 ) × h ( 3 ) h(0)\times h(3) h(0)×h(3),图2为 h ( 1 ) × h ( 2 ) h(1)\times h(2) h(1)×h(2),图3为 h ( 2 ) × h ( 1 ) … h(2)\times h(1)\dots h(2)×h(1)…后面的图依次类推。
得到: h ( 4 ) = h ( 0 ) × h ( 3 ) + h ( 1 ) × h ( 2 ) + h ( 2 ) × h ( 1 ) + h ( 3 ) × h ( 0 ) h(4)=h(0)\times h(3)+h(1)\times h(2)+h(2)\times h(1)+h(3)\times h(0) h(4)=h(0)×h(3)+h(1)×h(2)+h(2)×h(1)+h(3)×h(0) 为 C a t a l a n Catalan Catalan递推式。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
struct num{int a[N],l;
}ans;
int n;
void multi(num &b,int x){ //高精 乘 低精 int p=0;for(int i=1;i<=b.l;i++){b.a[i]=b.a[i]*x+p;p=b.a[i]/10;b.a[i]%=10;}while(p){b.a[++b.l]=p;p/=10;b.a[b.l]%=10;}
}
void div(num &b,int x){ //高精 除 低精 int p=0;for(int i=b.l;i>=1;i--){p=p*10+b.a[i];b.a[i]=p/x;p%=x;}while(!b.a[b.l]) b.l--;
}
int main(){scanf("%d",&n);ans.a[1]=ans.l=1;for(int i=2;i<=n;i++) multi(ans,i+n);for(int i=2;i<=n;i++) div(ans,i);for(int i=ans.l;i>=1;i--)printf("%d",ans.a[i]);return 0;
}
P2532 [AHOI2012]树屋阶梯($Catalan$数高精度)相关推荐
- P2532 [AHOI2012]树屋阶梯
P2532 [AHOI2012]树屋阶梯 提交4.66k 通过1.79k 时间限制1.00s 内存限制125.00MB 提交答案加入题单 复制题目 题目提供者clearman 难度提高+/省选- 历史 ...
- BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 779 Solved: 453 [Submit][Statu ...
- BZOJ2822 [AHOI2012]树屋阶梯
求卡特兰数,h[i]=C(2n,n)/(n+1) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int v[1005],p[1005 ...
- [Catalan数三连]网格有趣的数列树屋阶梯
如何让孩子爱上打表 Catalan数 Catalan数是组合数学中一个常出现在各种计数问题中的数列. 以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名. 先丢个公式(设第n项为$ ...
- POJ 2084 Catalan数+高精度
POJ 2084 /***************************************** author : Grant Yuan* time : 2014/10/19 15:42* so ...
- 洛谷oj P1045麦森数 高精度快速幂取模及位数求法
题目链接:戳我戳我 我们知道, 的最后一位必定不是0, 则 的位数与 相等. 那么如何来求 的位数呢? 为了不失一般性, 在此直接讨论任意数 的位数: 对于任意大于等于0的实数k, 有 的 ...
- bzoj2822 [AHOI2012]树屋阶梯 dp
容易得到一个结论:每一个块必须卡住一个角,不然一定是无法覆盖全的(一个矩形只能覆盖一个角) 所以就枚举多出来的矩形覆盖哪个角,剩下的方案数用以前算过的,类似插数dp 注:这个题竟然丧病的卡常,高精用的 ...
- [杂谈] 14. Catalan卡特兰数
文章目录 1. 前言 2. 卡特兰数递推公式推导 3. 卡特兰数性质 4. 卡特兰数简单实例 实例1:进出栈问题 实例2:进出栈问题变种 实例三:电影购票问题 实例四:上班路径问题 实例五:乘法结合律 ...
- 2019.4.summary
2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...
最新文章
- DSGN:基于深度立体几何网络的3D目标检测(香港大学提出)
- 与smart_Smart超纯水系统及原理
- filter 在CSS用的效果
- vs如何设置对话框显示在最前面_“打开”对话框的使用
- Atmosphere 1.0:支持Java/JavaScript的异步通信框架
- linux下运行python_在Linux命令行终端中使用python的简单方法(推荐)
- WordPress 插件开发实例 – 详细注释的 Widget 开发例子
- BZOJ1876 SDOI2009 SuperGCD 其他
- R2: 已解释和未解释的方差
- magento smtp设置
- Emacs镜像ELPA
- 网站文件系统发展分布式文件系统fastDFS
- iphone-common-codes-ccteam源代码 CCCompile.h
- Activity启动模式singleTask的理解
- java 发送封包_【Java学习笔记】自动封包和解包(Autoboxing和AutoUnboxing)
- 祝贺光环2014年6月28日PMP考试通过率90.28%
- 从HDMI到MHL,手机走进高清时代
- 十月上旬百度 阿里巴巴 迅雷搜狗最新面试七十题 第201 270题
- python print end参数_python print的参数详解
- keil软件仿真时如何使用逻辑分析仪查看波形