fjnu 凸多边形三角剖分
来源:互联网 发布:电子白板软件免费下载 编辑:程序博客网 时间:2024/04/29 15:25
凸多边形的三角剖分
1. 问题描述
设P是一个有n个顶点的凸多边形,P中的弦是P中连接两个非相邻顶点的线段。用P中的n-3条弦将P剖分成n-2个三角形(如下图所示)。使得n-3弦的长度之和最小的三角剖分称为最优三角剖分。
2. 具体要求
输入:输入的第一行是一个正整数m,表示测试例个数,接下来几行是m个测试例的数据,每个测试例的数据由两行组成,第一行含一个正整数n (n<=500),表示凸多边形的顶点个数;第二行含2n个实数x1 , y1 , x2 , y2 , …xn , yn ,按顺时针方向依次给出n个顶点的坐标值(xi, yi) i=1, 2, …, n,整数之间用一个空格隔开。
输出:对于每个测试例输出一行,含一个实数(精确到小数点后三位),表示最优三角剖分的n-3条弦的长度之和。两个测试例的输出数据之间用一个空行隔开。
3. 测试数据
输入:1
6
1 2 2 1.5 2 0.5 1 0 0 0.5 0 1.5
输出:
5.606
其动态方程为:
C[i,j]=0 (i=j||i=j+1||i+1=j);
C[i,j]=min {C[i,k-1]+C[k-1,j]}.
(C[i,j]表示第i个顶点到第j个顶点三角剖分的最优值)
最后结果为C[1,n]-W[1,n].
for(d=2;d<n;d++)
{
for(i=1;i<=n-d;i++)
{
j=i+d;
s=w[i][j];
c[i][j]=10000000;
min=10000000;
for(k=i+1;k<=j;k++)
{
t=c[i][k-1]+c[k-1][j];
if(t<min&&t!=0)
min=t;
}
if(min<10000000)
c[i][j]=s+min;
else
c[i][j]=s;
}
}
- fjnu 凸多边形三角剖分
- 凸多边形的三角剖分
- 凸多边形最优三角剖分
- 凸多边形最优三角剖分
- 凸多边形最优三角剖分
- 凸多边形的三角剖分
- 凸多边形的三角剖分
- 凸多边形最优三角剖分
- 凸多边形三角剖分问题
- 凸多边形最优三角剖分
- 凸多边形最优三角剖分
- 凸多边形最优三角剖分问题
- 凸多边形的最优三角剖分问题
- 【动态规划】凸多边形最优三角剖分
- 动态规划--凸多边形最优三角剖分
- 凸多边形最优三角剖分-动态规划
- 动态规划--凸多边形最优三角剖分
- 凸多边形最优三角剖分(polygon decomposition)
- 免费OA试用地址
- 1094 of ZOJ - AC的第二题
- 基于s3c2440的嵌入式开发
- Vray材质学习笔记08——陶瓷材质
- set uid,set gid,sticky bit详解
- fjnu 凸多边形三角剖分
- 人生意义的思考
- Java学习之路 --The Road Of Java Study《转》
- svn: Unrecognized URL scheme
- 教育改革与社会配套(1) 文/雷颐
- 基于Pawlak属性重要度的属性约简算法
- WPF DataGrid 实现行颜色改变
- 真正关掉MyEclipse下的checking for update 自动更新 提高MyEclipse的速度!
- 我的第一个文章