卡特兰数初步

2024-03-26 15:40
文章标签 初步 卡特兰

本文主要是介绍卡特兰数初步,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、什么是卡特兰数(Catalan Number)

递推式:f(n) = f(0)f(n-1) + f(1)f(n-2) + ... + f(n-2)f(1) + f(n-1)f(0)

前几项:1,2,5,14,42,132,429,1430 ...

二、能解决的实际问题

特点:一旦切开,分成两块,毫无关系

Q1

(2016·acm·shanghai·网络选拔赛)n个数围成一个圈,两两连直线,线与线不能相交,问有多少种连线方式

同:2n个人坐在圆桌旁握手,手不能交叉,问握手方案数


Q2

问n个数合法的出栈序列有多少个


Q3

多边形的三角剖分数目


 Q4

给数加括号


  Q5

走格子,只能走下三角


Q6

唱票,A从未落后于B,问唱票方式种类数(同Q5)


Q7

n个节点的二叉树个数

三、代码

// 求卡特兰数(递归写法)
// 2022-12-26 @nianjin# include <stdio.h>
int solve(int n)
{if (n == 1 || n == 0) return 1; //递归出口先写else{int ans = 0;for (int i = 0; i < n; i++) ans += solve(i)*solve(n - 1 - i);return ans;}
}
int main(void)
{int n;scanf("%d", &n);printf("%d", solve(n));return 0;
}

四、更多题目

这篇关于卡特兰数初步的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848990

相关文章

hdu4828(卡特兰数+逆元)

这题的前几个数据分别为1,2,5,14,32......................然后确定这是个卡特兰数列 下面来介绍下卡特兰数,它的递推式为f[i+1] = f[i]*(4*n - 6)/n,其中f[2] = f[3] =1;f[4] = 2;f[5] = 14;f[6] = 32.................................. 但是这题的n太大了,所以要用到逆元,

初步学习Android的感想

之前在学习java语言的时候就经常听说过Android这门语言,那时候感觉Android有些神秘感,再加上Android是用来开发移动设备的一门语言,所以一直对Android抱有一种兴奋的心情。 在我开始接触 Android之后,感觉超好玩,因为可以在自己的手机设备上开发一些我喜欢的小应用,再想想之前说学习Android应该会很难,但是如果你真的接触了,而且有JAVA的功底,我想学习Androi

初步了解VTK装配体

VTK还不太了解,根据资料, vtk.vtkAssembly 是 VTK库中的一个重要类,允许通过将多个vtkActor对象组合在一起来创建复杂的3D模型。 import vtkimport mathfrom vtk.util.colors import *filenames = ["cylinder.stl","sphere.stl","torus.stl"]dt = 1.0renW

Weka的初步介绍

Weka无疑是数据挖掘入门的最好工具,初学者可以直接使用图形界面了解数据挖掘的相关算法(如何使用网上有很多教程,可以参考 http://download.csdn.net/detail/u013422712/8649239)。     进阶阶段就必须学会使用和了解Weka的源码,这会在接下去的文章中写道。

Maven的初步使用以及命令行工具

在写本文的时候先来说明一下maven依赖的各种范围的意思 compile(编译范围) compile 是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。 provided(已提供范围)provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web 应用,你可能在编译cl

基于LangChain+LLM的相关技术研究及初步实践

01 概述 大模型概述 大模型是指具有大规模参数和复杂计算结构的机器学习模型。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过的数据

Mybaites初步认知

Mybaties中映射语句是最强大的地方。ResultMap是其中最重要,最强大的元素。 一个Mybaties以一个SqlSessionFactory实例为中心,通过配置类SqlSessionFactoryBuilder创建SqlSessionFactory. SqlSessionFactory作用域为application,在整个应用程序中始终存在,获取sqlsession实例。(SqlSe

2024数学建模国赛选题建议及初步思路来啦!

大家好呀,全国大学生数学建模竞赛今天下午开赛啦,在这里先带来初步的选题建议及思路。 目前团队正在写B题和C题完整论文,后续还会持续更新哈,大家三连关注一下防止迷路。 精力有限,以下只是简略的图文版初步思路,更详细的视频版完整讲解请移步: 2024数学建模国赛选题建议及A、B、C题思路_哔哩哔哩_bilibili 首先是主基调: 本次国赛推荐大家选择B或C题目。A题目只建议数理基础很扎

2024高教社杯数学建模国赛ABCDE题选题建议+初步分析

提示:DS C君认为的难度:C<B<A,开放度:A<C<B 。 D、E题推荐选E题,后续会直接更新E论文和思路,不在这里进行选题分析,以下为A、B、C题选题建议及初步分析 A题:“板凳龙” 闹元宵 A题是数模类赛事很常见的物理类赛题,需要学习不少相关知识。此题涉及对一个动态系统的建模,模拟一支舞龙队伍在螺旋路径中的行进,并求解队伍的整体动态行为。包括队伍的每秒位置、速度、碰撞检测、路径优化等

面向对象的简单初步认识

首先我们从一道经典的面向对象题目理解:一头母牛一年生一头小牛,一头小牛过四年也每年生一头小牛,照此推算,20年后一共有多少头牛? 牛:为一个具体对象。 牛:属性:年龄 按照题意可知:这头牛的年龄只要达到4岁就能开始生小牛 那首先我们先写一个小牛类:没过一年生一头小牛,这里面应该有个方法记录小牛的年龄,和新增的小牛 ​public void cow(){private int age;