#高精度,卡特兰数#洛谷 2532 [AHOI2012]树屋阶梯
分析
设\(dp[n]\)表示大小为\(n\)的树屋阶梯方案数,如何不算重也不算漏
考虑在左下角填充一个尽量大的矩形,一共有\(n\)种方法,
然后剩下的两头就可以用前面的结果表示
也就是\(dp[n]=\sum_{i=0}^{n-1}dp[i]*dp[n-i-1]\)
如果你知道这是卡特兰数的递推方法,那这题就迅速迎刃而解了
代码
#include <cstdio>
#define rr register
using namespace std;
const int N=1011,MOD=1000000000;
int ans[41],Cnt,prime[171],coun[N],n; bool v[N];
inline void doit(int n,int z){
for (rr int i=1;i<=Cnt;++i){
rr int m=n;
while (m>=prime[i])
m/=prime[i],coun[i]+=m*z;
}
}
inline void mul(int x){
rr int g=0;
for (rr int i=1;i<=ans[0];++i){
rr long long s=1ll*ans[i]*x+g;
g=s/MOD,ans[i]=s%MOD;
}
if (g) ans[++ans[0]]=g;
}
inline signed shuchu(){
printf("%d",ans[ans[0]]);
for (rr int i=ans[0]-1;i;--i)
printf("%09d",ans[i]);
return 0;
}
inline void Pro(int n){
for (rr int i=2;i<=n;++i){
if (!v[i]) prime[++Cnt]=i;
for (rr int j=1;j<=Cnt&&prime[j]*i<=n;++j){
v[i*prime[j]]=1;
if (i%prime[j]==0) break;
}
}
}
inline signed ksm(int x,int y){
rr int ans=1;
for (;y;y>>=1,x=x*x)
if (y&1) ans=ans*x;
return ans;
}
signed main(){
scanf("%d",&n),Pro(n*2),ans[ans[0]=1]=1;
doit(n*2,1),doit(n,-1),doit(n+1,-1);
for (rr int i=1;i<=Cnt;++i)
if (coun[i]) mul(ksm(prime[i],coun[i]));
shuchu();
return 0;
}
#高精度,卡特兰数#洛谷 2532 [AHOI2012]树屋阶梯的更多相关文章
- 洛谷P2532 [AHOI2012]树屋阶梯(Catalan数)
P2532 [AHOI2012]树屋阶梯 题目描述 输入输出格式 输入格式: 一个正整数N(1<=N<=500),表示阶梯的高度. 输出格式: 一个正整数,表示搭建方法的个数.(注:搭建方 ...
- 【题解】洛谷P2532 [AHOI2012]树屋阶梯(卡特兰数+高精)
洛谷P2532:https://www.luogu.org/problemnew/show/P2532 思路 来自Sooke大佬的推导: https://www.luogu.org/blog/Sook ...
- 卡特兰数 洛谷P1641 [SCOI2010]生成字符串
卡特兰数 参考博客 介绍 卡特兰数为组合数学中的一种特殊数列,用于解决一类特殊问题 设\(f(n)\)为卡特兰数的第n项 其通项公式为 \[f(n)=\frac{2n\choose n}{n+1} \ ...
- 【BZOJ 2822】2822: [AHOI2012]树屋阶梯(卡特兰数+高精度)
2822: [AHOI2012]树屋阶梯 Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处 ...
- BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 779 Solved: 453[Submit][Status] ...
- [AHOI2012]树屋阶梯 题解(卡特兰数)
[AHOI2012]树屋阶梯 Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营. ...
- bzoj2822[AHOI2012]树屋阶梯(卡特兰数)
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 879 Solved: 513[Submit][Status] ...
- P2532 [AHOI2012]树屋阶梯
题目:P2532 [AHOI2012]树屋阶梯 思路: 打表之后不难看出是裸的Catalan数.简单证明一下: 对于任意一种合法方案,都可以表示为在左下角先放一个\(k*(n+1-k),k\in[1, ...
- BZOJ2822[AHOI2012]树屋阶梯——卡特兰数+高精度
题目描述 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为N+1尺(N为 ...
- [bzoj2822][AHOI2012]树屋阶梯 (卡特兰数+分解质因数+高精度)
Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为 ...
随机推荐
- 机器学习策略篇:详解正交化(Orthogonalization)
正交化 这是一张老式电视图片,有很多旋钮可以用来调整图像的各种性质,所以对于这些旧式电视,可能有一个旋钮用来调图像垂直方向的高度,另外有一个旋钮用来调图像宽度,也许还有一个旋钮用来调梯形角度,还有一个 ...
- 项目实战:Qt管道焊接参数条码打印系统(条码打印机TSC 244 Pro、打印条码、打印中文、打印字符、多张连续打印)
需求 电脑端通过条码打印机TSC-TTP244 Pro: 1. 打印出尺寸为60*30cm 2. 条码打印机TSC-TTP244 Pro 不干胶纸 (不需要碳带,热敏纸) 3. window ...
- git 取消代理无效?试试这个
git 取消代理的命令操作 git conifg --global --unset http.proxy git conifg --global --unset https.proxy 一般情况下这种 ...
- 因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题
记录一次因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题,仅供大家参考!!! 背景介绍 公司有一个微信小程序,我做后端的,负责给小程序提供数据接口.后来因为一系列原因小程序要对接一个中控( ...
- better-scroll 1.13
简单入门示例:快速使用: <template> <div class="wrapper"> <div class="content" ...
- RC4Drop算法的工作原理揭秘:加密技术的进步之路
RC4Drop算法起源: RC4Drop算法是RC4算法的一种改进版本,旨在解决RC4算法在长时间加密过程中可能出现的密钥流偏置问题.RC4算法由Ron Rivest于1987年设计,是一种流密码算法 ...
- 摆脱鼠标系列 - vscode 左右切换文档 快捷键换成 Ctrl + Alt + 左右箭头
为什么 默认快捷键是 Ctrl + PageUp PageDown 用的不太习惯 Ctrl + Alt + 左右箭头 和 双列的快捷键冲突了,那个就不用了,基本没用过 备份图
- 动态挂载指定vue组件 Vue.extend $mount('#aaa111')
模板中要有定位 <template> <div id="aaa111"></div> </template> 指定某个函数执行 im ...
- react中css里面 class中的 图片的相对地址 完美解决 backgroundImage
发现问题:缓存 之前react的图片,也在style里面,也无所谓. 刚做了一个输入框,change的时候改变图片,每次都刷新图片,关键是没缓存,这哪受得了 之前用的: 网上搜索各种插件,替换什么的, ...
- 流媒体通信中RTP/RTCP在项目中的应用
一 概述: 本文档描述RTC通信中RTP/RTCP的应用以及当前项目中的使用策略. 二 RTP/RTCP协议简介 2.1 协议标准 RTP 由 IETF(http://www.ietf.org/)定义 ...