快速求第n位卡特兰数模板
来源:互联网 发布:网络短信发送平台 编辑:程序博客网 时间:2024/05/29 19:04
快速求第n位卡特兰数模板
mod1e9+7版
#include <iostream>#include <cmath>#include <ctime>#include <cstdio>#include <cstdlib>#include <cstring>#include <set>#include <list>#include <queue>#include <stack>#include <vector>#include <algorithm>#define ULL unsigned long longusing namespace std;long long n;const long long M=1000000007;long long inv[1000010];long long last,now=1;void init(){ inv[1]=1; for(int i=2;i<=n+1;i++)inv[i]=(M-M/i)*inv[M%i]%M;}int main(){ scanf("%lld",&n); init(); for(int i=2;i<=n;i++) { last=now; now=last*(4*i-2)%M*inv[i+1]%M; } printf("%lld\n",last); return 0;}
不mod版
#include<stdio.h>//*******************************//打表卡特兰数//第 n个 卡特兰数存在a[n]中,a[n][0]表示长度;//注意数是倒着存的,个位是 a[n][1] 输出时注意倒过来。//*********************************int a[105][100];void ktl(){ int i,j,yu,len; a[2][0]=1; a[2][1]=2; a[1][0]=1; a[1][1]=1; len=1; for(i=3;i<101;i++) { yu=0; for(j=1;j<=len;j++) { int t=(a[i-1][j])*(4*i-2)+yu; yu=t/10; a[i][j]=t%10; } while(yu) { a[i][++len]=yu%10; yu/=10; } for(j=len;j>=1;j--) { int t=a[i][j]+yu*10; a[i][j]=t/(i+1); yu = t%(i+1); } while(!a[i][len]) { len--; } a[i][0]=len; }}int main(){ ktl(); int T, n; scanf("%d", &T); while(T--) { scanf("%d",&n); for(int i=a[n][0];i>0;i--) { printf("%d",a[n][i]); } puts(""); } return 0;}
阅读全文
0 0
- 快速求第n位卡特兰数模板
- 大数模板+卡特兰数
- 卡特兰数 大数模板
- 卡特兰数模板 hdu1023
- 卡特兰数(模板)
- [转]C++大数模板 卡特兰数
- POJ 2084 卡特兰数+高精度模板
- HDU 1023卡特兰数 模板题
- 栈(卡特兰数模板)
- hdu 1134 卡特兰数(大数模板)
- 卡特兰数,高精度卡特兰数
- 卡特兰数
- 卡特兰数(Catalan)
- 卡特兰数
- 卡特兰数
- 卡特兰数 大数
- 卡特兰数
- 卡特兰数
- wx.navigateTo/wx.redirectTo 不能跳转
- LintCode 661 Convert BST to Greater Tree
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource
- JVM
- ccf认证炉石传说70分错误
- 快速求第n位卡特兰数模板
- JAVA-三种代理模式(静态、动态、子类/Cglib代理)
- 练耳大师 EarMaster Pro 6 破解版下载 免费激活版
- 网易2017校园招聘笔试程序题(分田地)
- 萌新的linux之旅27
- 练耳大师 EarMaster Mac 中文版 官网下载
- 离开了eclipse的java
- 关于cas client报错 The reference to entity "locale" must end with the ';' delimiter.
- MySQL学习图文笔记整理(一):库操作、单表操作