#高精度,卡特兰数#洛谷 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 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为 ...
随机推荐
- 【笔记】css —— BFC 原理
一.什么是 BFC BFC 即 Block Formatting Contexts (块级格式化上下文),具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素 ...
- .NET Core 集成微信支付签名错误
.NET Core 集成微信支付签名错误 The provided data is tagged with 'Universal' class value '16', but it should ha ...
- 第132篇:npm第一次使用自己的包(package-lock.json、package.json文件作用说明)
好家伙, 1.新建一个文件夹,命名为test 2.下载包 npm i panghu-planebattle 空白的文件夹中多了两个文件 package-lock.json和package. ...
- VSCode 配置 Spring Boot 项目开发环境
神器IDEA在升级到2023之后越发卡顿, EDU邮箱也不能用了, 照现在这个JDK版本的升级速度, 神器不升级也不行, 需要开始物色替代品. 其它IDE我用得少, VSCode还是比较熟悉的, 可以 ...
- Java面试必考题之线程的生命周期,结合源码,透彻讲解!
写在开头 在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用.创建方式.重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了. 第一个需要学的就是线程的生命周期,也可以将之理 ...
- dnsmasq 本地局域网DNS服务器搭建
项目背景 因为本地环境需要使用域名进行调试,需要DNS服务器 DNS 机器IP:192.168.5.249 dnsmasq 服务端部署 #01 关闭防火墙 systemctl stop firew ...
- Java中关键字-instanceof-的真实应用场景-2022新项目
instanceof关键字主要用来判断两个对象是否为同一种类型,举个例子如果有猫类.动物类,猫类继承自动物类: 判断某个类是否为动物类,就可以使用instanceof关键字.下面简单介绍几种真实的应用 ...
- 分支合并规则 dev master v1.0.XX 三条分支的合并原则
分支合并规则 dev master v1.0.XX 三条分支的合并原则
- iMindMap 10 的使用体验 + 讯飞输入法 + windows防火墙 (完美)
这个软件 最终的效果非常好. 但是有一个硬bug,就是输入光标 搜狗输入法和百度输入法,输入法获取不到,导致输入中文的时候,文字候选框位置特别远. 如果是纯英文 输入使用,就没有这个bug. 总结: ...
- iview 日期组件 清空后验证没报红,需要在onChange 进行单独 validateField,因为空字符串校验没有触发
// 日期组件的 onChange this.yourObj.xxxTime = item this.$refs.yourForm.validateField('xxxTime')