社区
数据结构与算法
帖子详情
凸多边形的三角形划分
Icee_sun
2008-03-28 12:59:07
Catalan数的一个应用,在一个n个顶点的凸多边形中,插入对角线(对角线两两不相交)将多边形划分为三角形,求划分算法。
算法要求是:
输入:凸多边形的顶点数n
输出:每种划分生成的三角形的顶点组合。
我原来用二分法做,但是这样是是一种划分,老师要求是所有划分序列的输出,不知道该怎么做了。大家帮帮忙啊!
...全文
2007
9
打赏
收藏
凸多边形的三角形划分
Catalan数的一个应用,在一个n个顶点的凸多边形中,插入对角线(对角线两两不相交)将多边形划分为三角形,求划分算法。 算法要求是: 输入:凸多边形的顶点数n 输出:每种划分生成的三角形的顶点组合。 我原来用二分法做,但是这样是是一种划分,老师要求是所有划分序列的输出,不知道该怎么做了。大家帮帮忙啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kvci
2008-04-02
打赏
举报
回复
这样的方法不知道行不行:
先构造一个足够大的三角形(所有点都在这个三角形内),再逐个点加进去,如果新增点在原来的任何一个三角形内,那所在的那个三角形拆成3个三角形
所有点加完之后,删除构造的三个点
xax100000
2008-04-02
打赏
举报
回复
经典的动态规划
kekedou
2008-04-01
打赏
举报
回复
貌似是曾经NOI的竞赛题。。。。。。。。
偶就是用楼上的方法做的,每一个点轮流作为基点。。。。。。
大王派我去巡山
2008-04-01
打赏
举报
回复
在一个n个顶点的凸多边形中,插入对角线(对角线两两不相交)将多边形划分为三角形。
总共需要n-3条弦,将多边形切成n-2个小三角形。
设凸多边形n个顶点顺序为p[1],p[2],……,p[n],
它有n条边:<p[1]p[2]>,<p[2]p[3]>,……,<p[n-1]p[n]>,<p[n]p[1]>。
按顶点编号顺序,将其中的n-1条边写成下面这个序列:
<p[1]p[2]><p[2]p[3]><p[3]p[4]>……<p[n-1]p[n]>,
则多边形的三角划分和这个序列的全括号化存在着一一对应的关系。
以五边形为例:
选定多边形的一条边<p[1]p[n]>为基边,无论怎样分区域,基边总能在分成的三角形区域中的一个中。
该三角形区域又将凸多边形区域分成三个部分
令函数f(n)来表示n+1个顶点的多边形划分出的小三角数量,并规定f(1)=1,
根据划分点的选取过程可以看出,递推关系满足下列式子
f(n)=f(1)*f(n-1)+f(2)*f(n-2)+……+f(n-1)*f(1),这里n>=2
用递归的法子模拟上述过程,就能够输出全部的划分。
hl_md_wj
2008-03-31
打赏
举报
回复
这个问题是动态规划法的经典例题,讲动态规划的一般都会讲到这个问题,很容易找的
用户 昵称
2008-03-30
打赏
举报
回复
1连3,3连5........
hoohag
2008-03-29
打赏
举报
回复
晕...楼上的啊楼上的....把组合数学里面的东西搬出来了. 楼主去看看机械工业的组合数学, 就什么都解决了
medie2005
2008-03-28
打赏
举报
回复
当然,用简单的递归就可以解决,
递归式: T(n)=∑(1≤k≤n-1)T(k)*T(n-k).
其实你们老师估计也是要你们用递归的方法做的.
medie2005
2008-03-28
打赏
举报
回复
lz的意思是求所有划分序列?
如果是这样,可以提供一个解题思路:
题目中已经提示:Catalan数与凸多边形的三角形划分有紧密联系.
因此,Catalan 0-1序列与凸多边形的三角形划分序列也有紧密联系.
我们如果知道两点:
1):如何生成所有含n个1和n个0的Catalan 0-1序列;
2):每个Catalan 0-1序列与三角形划分序列的转化关系.
我们就可以生成所有的三角形划分序列.
问题1在我blog中<词典序法生成出栈序列>一文中有,可以参考:
http://blog.csdn.net/medie2005/archive/2007/12/19/1954361.aspx
至于问题2,得看你的划分序列如何定义的,这样才好找对应关系.
这个工作应当不难,lz自己应能完成.
HNOI'97
凸多边形
的
三角形
划分
问题。。
本文探讨了一种通过动态规划解决
凸多边形
划分
问题的方法,旨在寻找将
凸多边形
划分
成若干互不相交
三角形
的方式,使这些
三角形
顶点权值乘积之和最小。
凸多边形
区域
划分
为
三角形
问题
本文探讨了
凸多边形
区域
划分
成
三角形
的方法数量,并给出了递推公式。同时,还讨论了如何根据节点数构造不同二叉树的问题。
经典问题四. 【区间dp】
凸多边形
最优
三角形
划分
本文介绍了一种解决
凸多边形
最优
三角形
划分
问题的动态规划算法。该算法通过将
凸多边形
的点数组化并利用区间DP方法找到凸子多边形的最优三角剖分权函数值。
Catalan数与
凸多边形
的
三角形
划分
的关系
本文探讨了如何通过插入不相交的对角线将一个
凸多边形
划分
为若干小
三角形
的方法,并建立了这种
划分
与序列全括号化之间的对应关系。文中详细介绍了
划分
的过程及递推公式。
区间DP——
凸多边形
的
三角形
划分
本文探讨了如何将一个
凸多边形
通过最优方式
划分
成多个
三角形
的问题,旨在找到顶点权重乘积之和最小的方案。文章提供了一种算法实现,并详细解释了其背后的原理,包括使用高精度计算来处理可能的大数值。
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章