bzoj 2822 [AHOI2012]树屋阶梯 卡特兰数
来源:互联网 发布:时时彩模拟软件 编辑:程序博客网 时间:2024/05/17 01:26
因为规定n层的阶梯只能用n块木板
那么就需要考虑,多出来的一块木板往哪里放
考虑往直角处放置新的木板
不管怎样,只有多的木板一直扩展到斜边表面,才会是合法的新状态,发现,这样之后,整个n层阶梯就被分成了i层和n-1-i层的阶梯,即
就是卡特兰数!!!,需要高精。。差评。。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#define N 1050using namespace std;int n,prime[N],tot,id[N],num[N];bool bo[N];struct bignum{ int len,a[500]; bignum(){len=0;memset(a,0,sizeof a);} bignum operator = (int x){ while(x){ a[++len]=x%10; x/=10; } return *this; } bignum operator * (int x){ bignum b; b.len=len; for(int i=1;i<=len;i++) { b.a[i]+=a[i]*x; b.a[i+1]+=b.a[i]/10; b.a[i]%=10; } while(b.a[b.len+1]){ b.len++; b.a[b.len+1]=b.a[b.len]/10; b.a[b.len]%=10; } return b; }}ans;void print(bignum b){ for(int i=b.len;i;i--){ printf("%d",b.a[i]); }printf("\n");}void getprime(){ for(int i=2;i<=2*n;i++){ if(!bo[i]){ prime[++tot]=i; id[i]=tot; } for(int j=1;j<=tot&&i*prime[j]<=2*n;j++){ bo[i*prime[j]]=1; id[i*prime[j]]=j; if(i%prime[j]==0)break; } }}void add(int x,int y){ while(x!=1){ num[id[x]]+=y; x/=prime[id[x]]; }}int main(){ scanf("%d",&n); getprime(); for(int i=n+2;i<=2*n;i++)add(i,1); for(int i=1;i<=n;i++)add(i,-1); ans=1; for(int i=1;i<=tot;i++) while(num[i]--) ans=ans*prime[i]; print(ans); return 0;}
阅读全文
0 0
- BZOJ 2822 AHOI2012 树屋阶梯 卡特兰数
- bzoj 2822 [AHOI2012]树屋阶梯 卡特兰数
- bzoj 2822: [AHOI2012]树屋阶梯 (卡特兰数+高精度)
- 【BZOJ2822】【AHOI2012】树屋阶梯 卡特兰数 python高精度
- 【bzoj 2822】树屋阶梯详解 卡特兰数性质
- [BZOJ2822][AHOI2012]树屋阶梯(卡特兰数+组合数学+高精度)
- BZOJ 2822 AHOI 2012 树屋阶梯 卡特兰数+高精度
- BZOJ 2822 AHOI 2012 树屋阶梯 卡特兰数 高精度
- 【BZOJ 2822】 [AHOI2012]树屋阶梯
- BZOJ 2822: [AHOI2012]树屋阶梯
- 【BZOJ】【P2822】【AHOI2012】【树屋阶梯】【Catalan数+高精度】
- 2822: [AHOI2012]树屋阶梯
- 2822: [AHOI2012]树屋阶梯
- 树屋阶梯(卡特兰数+高精除低精+高精乘低精)
- 【AHOI2012】【BZOJ2822】树屋阶梯
- bzoj2822: [AHOI2012]树屋阶梯
- BZOJ2822 [AHOI2012]树屋阶梯
- BZOJ2822: [AHOI2012]树屋阶梯
- Spring4+Hibernate4声明式事务管理
- object.key与object[key]的差异
- 简单的鼠标单机跟随
- 4、认识正则表达式和re库
- 初学babel的简易使用
- bzoj 2822 [AHOI2012]树屋阶梯 卡特兰数
- 【Python3.6爬虫学习记录】(二)使用BeautifulSoup爬取简单静态网页文章
- springMVC 整合shiro
- zoj3435 莫比乌斯反演
- 14.说说ATL常用包装类的用法和坑
- Unity3D之设计模式MVC
- 阿里云CentOS Yum 出现Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge
- poj2528(离散化线段树区间更新)
- ReactNative 退出到后台一定时间之后,跳转到登录界面