卡特兰数

递推公式: C(n)=C(2n,n)/(n+1)  即用数组表示为c[i]=c[i-1]*(4*i-2)/(i+1);

一般形式 直接 表达

c[1]=1;
for(i=2;i<40;i++)
{  c[i]=c[i-1]*(4*i-2)/(i+1);
}  

一般 不超过33  超过33 后 数组溢出,

或者   超过44 后溢出

dp[1][1]=1; // 可到40
for(i=2;i<40;i++)for(j=1;j<=i;j++){dp[i][j]=dp[i-1][j]+dp[i][j-1];}
dp[i][i]==// 卡特兰数 

因此 当 要求44-100 内时 就要用到大数模板,来进行运算

针对这个题, 可以现 做预处理  

引用c[i]=c[i-1]*(4*i-2)/(i+1);的思想,  用大数据来算

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>
/*先 打表,  卡特兰数, 大数模板
*/
using namespace std;const int MAXN=10000;
const int DEL=4;
const int N=100;
int a[102][N+2];
void multiply(int a[],int b)//乘法
{int i,temp=0;for(i=N-1;i>=0;i--){temp+=a[i]*b;a[i]=temp%MAXN;temp/=MAXN;}
}
void divid(int a[],int b)//除法
{int temp=0,i;for(i=0;i<N;i++){temp=temp*MAXN+a[i];a[i]=temp/b;temp=temp%b;}
}int main()
{int i,n;memset(a[1],0,sizeof(a[1]));a[1][N-1]=1;for(i=2;i<N+1;i++)//打表{memcpy(a[i],a[i-1],N*sizeof(int));multiply(a[i],4*i-2);//乘法divid(a[i],i+1);//除法}while(~scanf("%d",&n)&&n!=-1){for(i=0;i<N&a[n][i]==0;i++);// 去掉前面的0printf("%d",a[n][i]);for(i=i+1;i<N;i++){printf("%04d",a[n][i]);// 无0 补0}printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/sizaif/p/9078573.html

hdu 1134 卡特兰数(大数模板)相关推荐

  1. HDU 3723 Delta Wave(卡特兰数+大数)

    题意:从坐标(0, 0)到(n, 0)的折线,这条折线每向右延伸一个单位长度,高度要么不变,要么+1,要么-1,(不能到y=0以下)已知n,求这种折线种数 思路:我们知道上升和下降的次数要一样,而这就 ...

  2. HDOJ/HDU 1133 Buy the Ticket(数论~卡特兰数~大数~)

    Problem Description The "Harry Potter and the Goblet of Fire" will be on show in the next ...

  3. zcmu-1934(卡特兰数大数取模(逆元))

    1934: ly的二叉树 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 42  Solved: 9 [Submit][Status][Web Boar ...

  4. hdu5184 给出(和)前半段问后面有多少种加括号方法使合法:类似卡特兰数+逆元模板...

    题解说的很好呀== 就是拿50和100的买票多少种方案== 1 #include<stdio.h> 2 #include<string.h> 3 #include<alg ...

  5. 【HDU - 1134 】Game of Connections(JAVA大数加法,卡特兰数)

    题干: This is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - ...

  6. hdu 1023 大数 卡特兰数

    卡特兰数 JAVA大数 import java.util.*; import java.math.*; public class Main {public static void main(Strin ...

  7. HDU 5673 Robot 卡特兰数

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5673 题目描述: 一个人从原点开始向右走, 要求N秒后回到原点, 且过程中不能到负半轴, 人有两种操 ...

  8. HDU 3240 Counting Binary Trees 数论-卡特兰数

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3240 卡特兰数递推公式h(i)=h(i-1)*(4*i-2)/(i+1) 如果直接算每一步,然后mo ...

  9. c++ 大数类 大数模板

    分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法.减法.乘法.除法.n次方.取模.大小比较.赋值以及输入流.输出流的重载.. 并且使用这个大数模板,顺利AC了HDOJ上的1134这 ...

最新文章

  1. 软件测试-培训的套路-log3
  2. WhatsApp宣布免费 欲变身一站式企业式服务应用
  3. Your PC needs to be repaired
  4. 内存颗粒位宽和容量_SDRAM的逻辑Bank与芯片容量表示方法
  5. c 正则提取html,c – 正则表达式以获取HTML表格内容
  6. 爬虫开发.1爬虫介绍
  7. 蓝桥杯2020年第十一届Python省赛第一题-门牌制作
  8. scrum 12.8
  9. jcodec_java-jcodec-有人看过该库的文档吗?
  10. Java的GUI学习三(frame)
  11. 手把手教你学项目管理软件project
  12. HTML+CSS+JS大作业:生态环境网站设计——环境保护主题-绿色环保 (9页) web期末作业设计网页_绿色环保大学生网页设计作业成品
  13. Python实用案例,Python脚本实现快速卡通化人物头像,让我想起了QQ秀时光!
  14. 麒麟座IIC-STM32F103RET6(1)-完成基础LED
  15. 现代控制理论基础总结
  16. 详解typora配置华为云图床
  17. laragon mysql版本_laragon mysql8 安装
  18. 万邦淘宝/天猫获得淘宝商品评论 API 返回值说明
  19. 运行springboot项目时报错: Description: The bean ‘userServiceImpl‘ could not be injected as a
  20. Retrying connect to server: xxx.xxx.xxx.xxx:8032. Already tried 0 time(s)

热门文章

  1. git 管理 Linux 文件系统
  2. Redux 入坑笔记
  3. 记录一次SQL查询语句
  4. JSLint JavaScript代码质量审查工具汉化中文版隆重发布
  5. .net 实现微信公众平台的用户信息获取
  6. poj 3461 - Oulipo
  7. 为长篇文档快速创建目录
  8. 在上级对自己做绩效评估之前
  9. 一个普通handler会持有activity引用吗_详解handler机制
  10. easypoi导出word表格_Java导出word文档(POIamp;Spire.Doc)