社区
数据结构与算法
帖子详情
凸多边形的三角形划分
Icee_sun
2008-03-28 12:59:07
Catalan数的一个应用,在一个n个顶点的凸多边形中,插入对角线(对角线两两不相交)将多边形划分为三角形,求划分算法。
算法要求是:
输入:凸多边形的顶点数n
输出:每种划分生成的三角形的顶点组合。
我原来用二分法做,但是这样是是一种划分,老师要求是所有划分序列的输出,不知道该怎么做了。大家帮帮忙啊!
...全文
1949
9
打赏
收藏
凸多边形的三角形划分
Catalan数的一个应用,在一个n个顶点的凸多边形中,插入对角线(对角线两两不相交)将多边形划分为三角形,求划分算法。 算法要求是: 输入:凸多边形的顶点数n 输出:每种划分生成的三角形的顶点组合。 我原来用二分法做,但是这样是是一种划分,老师要求是所有划分序列的输出,不知道该怎么做了。大家帮帮忙啊!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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自己应能完成.
凸多边形
三角
划分
算法的project,
凸多边形
三角
划分
。 代码c++编写 ,vc6编译。有mfc的画图,也是vc6. 有详细的文档报告。
一种简单的
凸多边形
三角形
网格生成
一种基于delaunay算法的
凸多边形
三角网格
划分
的实现
划分
凸多边形
(必做)
一个正凸N边形,可以用N-3条互不相交的对角线将正N边形分成N-2个
三角形
。 现在要求读入N边形的N(N≤20),输出不同
划分
方法的总数(要求解的是
划分
方法数,而不需要输出各种
划分
法)。
凸多边形
的最优三角
划分
(java)
凸多边形
的最优三角
划分
(java)+报告说明
AcWing 1069
凸多边形
的
划分
题目描述: 给定一个具有 N 个顶点的
凸多边形
,将顶点从 1 至 N 标号,每个顶点的权值都是一个正整数。 将这个
凸多边形
划分
成 N−2个互不相交的
三角形
,对于每个
三角形
,其三个顶点的权值相乘都可得到一个权值乘积,试求所有
三角形
的顶点权值乘积之和至少为多少。 输入格式 第一行包含整数 N,表示顶点数量。 第二行包含 N 个整数,依次为顶点 1 至顶点 N 的权值。 输出格式 输出仅一行,为所有
三角形
的顶点权值乘积之和的最小值。 数据范围 N≤50, 数据保证所有顶点的权值都小于10^9 输入样例: 5 121 122 123 245 231 输出样例: 12214884 分析: 首先需要
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章