凸多边形三角划分 catelan数
2017-03-13 18:28
267 查看
凸多边形三角划分
在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。任务是键盘上输入凸多边形的边数n,求不同划分的方案数f(n)。比如当n=6时,f(6)=14。分析
如果纯粹从f(4)=2,f(5)=5,f(6)=14,……,f(n)=n慢慢去归纳,恐怕很难找到问题的递推式,我们必须从一般情况出发去找规律。
因为凸多边形的任意一条边必定属于某一个三角形,所以我们以某一条边为基准,以这条边的两个顶点为起点P1和终点Pn(P即Point),将该凸多边形的顶点依序标记为P1、P2、……、Pn,再在该凸多边形中找任意一个不属于这两个点的顶点Pk(2<=k<=n-1),来构成一个三角形,用这个三角形把一个凸多边形划分成两个凸多边形,其中一个凸多边形,是由P1,P2,……,Pk构成的凸k边形(顶点数即是边数),另一个凸多边形,是由Pk,Pk+1,……,Pn构成的凸n-k+1边形。
此时,我们若把Pk视为确定一点,那么根据乘法原理,f(n)的问题就等价于——凸k多边形的划分方案数乘以凸n-k+1多边形的划分方案数,即选择Pk这个顶点的f(n)=f(k)×f(n-k+1)。而k可以选2到n-1,所以再根据加法原理,将k取不同值的划分方案相加,得到的总方案数为:f(n)=f(2)f(n-2+1)+f(3)f(n-3+1)+……+f(n-1)f(2)。看到此处,再看看卡特兰数的递推式,答案不言而喻,即为f(n)=h(n-2)
(n=2,3,4,……)。
最后,令f(2)=1,f(3)=1。
此处f(2)=1和f(3)=1的具体缘由须参考详尽的“卡特兰数”,也许可从凸四边形f(4)=f(2)f(3)+ f(3)f(2)=2×f(2)f(3)倒推,四边形的划分方案不用规律推导都可以知道是2,那么2×f(2)f(3)=2,则f(2)f(3)=1,又f(2)和f(3)若存在的话一定是整数,则f(2)=1,f(3)=1。
类似问题
一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?
给定节点组成二叉搜索树
给定N个节点,能构成多少种不同的二叉搜索树?(能构成h(N)个)
(这个公式的下标是从h(0)=1开始的)
相关文章推荐
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)
- 凸多边形三角划分(HNOI’97)
- 耳切法处理多边形三角划分
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)
- 将任意多边形划分成几个凸多边形
- nyoj 区域赛系列一多边形划分 1103 (卡特兰打表)
- 多边形划分
- 利用CListCtrl和CTreeCtrl实现多边形划分三角形的组合分法(组合数学)
- nyoj-1103-区域赛系列一多边形划分
- Cake - ZOJ 3537 凸包+dp三角划分
- 凸多边形的最优三角划分最详细求解步骤演示[动态规划]
- 区域赛系列一多边形划分(卡特兰数)
- 二维平面三角划分
- 基于快速多边形三角塞德尔的算法
- 题目1103:区域赛系列一多边形划分
- 带洞多边形三角剖分发图留念
- 区域赛系列一多边形划分
- 高效的多边形三角