目录

  • Catalan数(卡特兰数)
    • 姐妹洗碗问题
    • n个不同元素进栈,求出栈元素不同排列的个数?
    • 找零问题
    • 一般化
    • c++代码实现

Catalan数(卡特兰数)

姐妹洗碗问题


n个不同元素进栈,求出栈元素不同排列的个数?

找零问题

都符合约束条件:
摞碗数<=洗碗数
出栈数<=进栈数
持有10元人数<=持有5元人数
都符合W线

一般化

c++代码实现

二维dp

void cantalanNum(int n) {vector<vector<int>> dp(n, vector<int>(n, 0));for(int i=1;i<n;++i)dp[0][i] = 1;for (int i = 1; i < n; ++i) {for (int j = i ; j < n; ++j) {dp[i][j] = dp[i][j - 1] + dp[i - 1][j];}}for (int i = 0; i < n; ++i)cout << dp[i][i] << " ";cout << endl;
}

可以简化为一维dp


void cantalanNum(int n) {vector<int> dp(n, 1);dp[0] = 0;for (int i = 1; i < n; ++i)for (int j = i + 1; j < n; ++j)dp[j] = dp[j] + dp[j - 1];for (auto i : dp)cout << i << " ";cout << endl;
}

Catalan数(卡特兰数)系列问题及代码相关推荐

  1. Catalan number卡特兰数

    背景知识介绍:   卡特兰数是离散数学中的一个重要数列,是很多生活场景的一个抽象,比如买早餐.买电影票等等.在很多大公司的笔试或者面试题中也常涉及到. 百度百科介绍   卡特兰数   卡特兰数是组合数 ...

  2. Catalan数——卡特兰数

    今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来 后来查了下,原来是Catalan数.悲剧啊,现在整理一下 Catalan数--卡特兰数] 一.Catalan数的定义令h( ...

  3. C++打印0到N的Catalan数卡特兰数(附完整源码)

    打印0到N的Catalan数卡特兰数 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测试) 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测 ...

  4. Catalan Numbers 卡特兰数

    卡特兰数源于组合数学,递推式为 H[1] = 1:H[n] = H[n-1]*(4*n-2)/(n+1){n>=2}: 卡塔兰数的渐近增长为 下面给出几个求卡特兰数的公式,用h(n)表示卡特兰数 ...

  5. 专辑:Catalan number 卡特兰数(卡塔兰数)

    概念 卡特兰数序列:1,1,2,5,14,42,132,429,1430,4862,16796...1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796... ...

  6. C语言Catalan number卡特兰数(使用n个键可以搜索多少个二叉搜索树)的算法(附完整源码)

    C语言使用n个键可以搜索多少个二叉搜索树的算法 C语言使用n个键可以搜索多少个二叉搜索树的算法完整源码(定义,实现,main函数测试) C语言使用n个键可以搜索多少个二叉搜索树的算法完整源码(定义,实 ...

  7. 算法基础 - 数论 | 组合数学 卡特兰数(Catalan number)定义、证明及例题

    写在前面:卡特兰数这东西感觉挺常用的,并且公式很简单,那就花一下午总结一下,学点皮毛吧(反正遇到我还是不会 ) [PDF] 大三上组合数学课堂讲义 文章目录 卡特兰数定义 卡特兰数的性质 卡特兰数证明 ...

  8. 如何求卡特兰数——代码如下

    void catalan() //求卡特兰数 { int i, j, len, carry, temp; a[1][0] = b[1] = 1; len = 1; for(i = 2; i <= ...

  9. 卡特兰数 Catalan number

    卡特兰数 Catalan number 卡特兰数前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 74290 ...

  10. 卡特兰数Catalan

    1.卡特兰数的性质 其实重要的就两个公式:1和3. 公式1是卡特兰数的通项公式. 公式2是卡特兰数的递归公式.注意递推公式是C n+1=- 通常是发现问题可以用卡特兰数的递推公式来解决,从而想到卡特兰 ...

最新文章

  1. bugfree-工具
  2. sso和oauth2.0的简单了解学习
  3. Hazelcast入门指南第6部分
  4. Matlab将一矩阵中等于某个值的元素全部替换成另一个值
  5. gbase 8s oracle,GBase8s 查看数据库表空间信息
  6. 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
  7. linux的多任务 多进程,浅谈linux模拟多线程崩溃和多进程崩溃
  8. MySQL数据库常用的操作命令(二)
  9. Java中如何编写一个完美的equals方法
  10. 迷你linux主机,ECS推出两款迷你主机新品:支持Linux系统,可输出4K视频
  11. MySql 数据类型 - 整型
  12. 网络安全实验室之基础关
  13. VBA学习笔记4:将同一文件下的多个工作簿的数据汇总为一个工作表
  14. windows10 系统中,双屏下,设置各自屏的任务栏显示各自显示器中的任务。
  15. 香港常见问题扫盲贴(港币兑换/签注直飞/刷卡/酒店押金/关税/香港上网)
  16. 3乘3魔方第四步_3乘3魔方的解法都有哪些?(讲具体点,怎么具体呢?有公式步骤吧!)?...
  17. STM32 用RS485进行半双工通信出现的问题
  18. 涉嫌一级强奸重罪之后,危险的刘强东和京东
  19. 虚拟机上服务器开机经常黑屏,VMware虚拟机开机黑屏怎么办?虚拟机开机就黑屏的完美解决办法...
  20. jQuery多余文字折叠效果

热门文章

  1. 大数据分析与实践 数据预处理-主成分分析
  2. 光纤布线:如何测量光纤损耗与距离
  3. 虚幻商城人物替换默认小白人(不同骨骼模型人物公用一套动画)
  4. FBX骨骼模型导入UE4
  5. golang工作中常用的一些库
  6. LabVIEW练习16
  7. VUE项目引入微信JSSDK 实现微信自定义分享
  8. jquery概要--基础01
  9. 丢手帕问题 java_丢手帕问题 (java实现)
  10. Spring Data ElasticSearch增删改查