百度一番:

历史

·1758年,Johann Segner 给出了欧拉问题的递推关系;
·1838年,研究热潮:
–GabrielLame给出完整证明和简洁表达式;
–EugèneCharlesCatalan在研究汉诺塔时探讨了相关问题,解决了括号表达式的问题。
–……
–1900年,EugenNetto在著作中将该数归功于Catalan。
·1988年以及1999年的文献研究表明实际上最初发现Catalan数的也不是Euler。
–1753欧拉在解决凸包划分成三角形问题的时候,推出了Catalan数。
–1730年我国清朝时期的明安图(蒙古人)比Catalan更早使用了Catalan数,见《割圜密率捷法》。后来他的学生在1774年将其完成发表。
最后由比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名。
 
卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名,其前几项为(从第零项开始) : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...
卡特兰数Cn满足以下递推关系 [1]  :

公式一

递归公式

h(0)=h(1)=1

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)

如果我们用这个公式显然我们要使用递归算法,那么数据一大就在时空上很麻烦

公式二

递推公式

h(n)=h(n-1)*(4*n-2)/(n+1)

这个公式应用递推,看上起十分和善

但对大数据呢?

我们注意到大数据的时候h(n)会很大,这时候题目一般会让你对某素数取模(当然你可以打高精度(划掉))

但你在取模过程中难保一个h(n)%mod=0

那么根据公式下面所有的数都会等于0,于是你就愉快的WA了

公式三

组合数公式1

h(n)=C(2n,n)/(n+1) (n=0,1,2,...)

卡特兰数可以与组合数联系起来,得到上面的公式

而组合数就是一个杨辉三角,可以递推得到(这个不属于这道题的讨论范围我假装你们都会(逃))

但我们发现对于大数据你要取模,而对于除法你是没办法用膜的性质的(当然你可以应用逆元(划掉)),所以造成了麻烦

公式四

组合数公式2

h(n)=c(2n,n)-c(2n,n-1) (n=0,1,2,...)

与组合数公式1不同这个是两个组合数的减法

减法是可以用膜的性质的,于是你可以愉快的AC了。

最新文章

  1. lua学习例子
  2. Android出现java.net.SocketException: Permission denied报错
  3. Spring-MongoDB简单操作
  4. PHP练习题(二)
  5. 查错 CH Round #57 - Story of the OI Class
  6. Python新手学习基础之数据结构-序列2
  7. jquery 综合使用例子
  8. 11.并发包阻塞队列之LinkedBlockingQueue
  9. 亲测有效!一种完美动态阈值白平衡算法 Java实现。
  10. The C++ Programming Language 学习笔记 第6章 表达式和语句
  11. .Net Core vs .Net Framework 如何为一个应用程序选择一个运行时
  12. Go语言中Loop的注意点
  13. 微信小程序传递参数(字符串、数组、对象)
  14. python多线程采集
  15. 剑指Offer-第一个只出现一次的字符位置
  16. Reading Lines from File in C++
  17. hadoop学习笔记壹 --环境搭建及配置文件的修改
  18. Raphaël - JavaScript Vector Library
  19. CS224n-作业1
  20. ORB_SLAM2 源码阅读 ORB_SLAM2::ORBextractor

热门文章

  1. leetcode刷题系列(一) 26题 删除排序数组中的重复项
  2. 【Spring Cloud学习之六】断路器-Hystrix
  3. jmeter jtl 文件
  4. vue脚手架(vue-cli)老版本(2.xx版)的使用
  5. Spring Boot 注解大全,真是太全了!
  6. 配置多用户SMB挂载
  7. MOOC python笔记(一):python语言概述
  8. java之mybatis之配置文件讲解
  9. EFCore自动迁移
  10. jQuery中的几个案例:隔行变色、复选框全选和全不选