凸多边形三角划分
2017-04-18 22:21
169 查看
给定一个具有N(N<50)个顶点(从1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?
输入文件:第一行 顶点数N
第二行 N个顶点(从1到N)的权值
输出格式:最小的和的值
各三角形组成的方式
输入示例:5
122 123 245 231
输出示例:The minimum is :12214884
输入文件:第一行 顶点数N
第二行 N个顶点(从1到N)的权值
输出格式:最小的和的值
各三角形组成的方式
输入示例:5
122 123 245 231
输出示例:The minimum is :12214884
/* 区间DP f[i][j]表示区间i-j的最小成绩之和,然后枚举断点k,使i,j,k形成一个三角形。 */ #include<iostream> #include<cstdio> #include<cstring> #define N 60 #define lon long long using namespace std; int a ,n; lon f ; int main(){ memset(f,127/3,sizeof(f)); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) f[i][i+1]=0; for(int i=n-2;i>=1;i--) for(int j=i+2;j<=n;j++) for(int k=i+1;k<j;k++) f[i][j]=min(f[i][j],f[i][k]+f[k][j]+a[i]*a[j]*a[k]); cout<<f[1] ; return 0; }
相关文章推荐
- 凸多边形的最优三角划分最详细求解步骤演示[动态规划]
- 凸多边形三角划分
- 【数论】求凸多边形的三角划分
- 凸多边形三角划分(HNOI’97)
- 区间动规——凸多边形的三角划分
- 【区间DP】凸多边形的三角划分
- 将凸多边形区域划分为三角形问题
- Cake - ZOJ 3537 凸包+dp三角划分
- 将任意多边形划分成几个凸多边形
- 凸多边形三角划分 catelan数
- zoj 3537 Cake(三角划分dp+凸包)
- c++ MFC 关于三角划分的问题
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)
- HNOI'97凸多边形的三角形划分问题。。
- 二维平面三角划分
- 最优三角划分(动态规划) By ACReaper
- 10343 划分凸多边形(必做)
- 凸多边形三角划分(HNOI’97)
- (hdu step 2.3.6)Game of Connections(大数:凸多边形的三角形划分)
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)