凸多边形的三角剖分(dp好题)

【题目描述】
给定一具有N个顶点(从1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?
【输入格式】
第一行 顶点数N(N<50)。
第二行 N个顶点(从1到N)的权值,权值为小于32768的整数。

给点顺时针标号,动态规划方程:F[i][j]表示从序号为i的点到序号为j的点组成的多边形的最佳划分。F[i][j]=max{F[i][k]+F[k][j]+w[i]*w[j]*w[k]};

一开始做错,主要是因为F[i][j]对应的多边形,以点i,i+1连成的边为基准,枚举第3个点k,构成一个三角形,然后就把多边形分成了2个或3个部分,但是这样划分出来的新多边形,有的没法用F[p][q]的形式来表示,因此是错误的。正解是以点i和j连成的边为基准,枚举k,构成三角形,这样能保证所有划分出来的新的多边形可以用F[p][q]的形式来表示。

posted @ 2014-08-06 16:01  lzw4896s  阅读(1023)  评论(0编辑  收藏  举报