您的位置:首页 > 其它

凸多边形三角划分

2012-03-25 22:00 225 查看
1 动态规划转移方程

设 F[I,J](I<J)表示从顶点 I 到顶点 J 的凸多边形三角剖分后所得到的最大乘积

F[I,J]=Min{F[I,K]+F[K,J]+S[I]*S[J]*S[K]}     (I<K<J)
目标状态为:F[1,N]

2 代码

#include <stdio.h>
#define N 52
#define MAX 999999999
int c

;
int s
;
int main()
{
int i,j,k;
int n;
scanf("%d",&n);
for( i=1;i<=n;i++)
scanf("%d",&s[i]);

for (i = 1; i <= n; ++i)
{
c[i][i+1] = 0;
for (j = i + 2; j <=n; ++j)
{
c[i][j] = MAX;
}
}
for (i = n - 2; i >= 1; --i)
{
for (j = i + 2; j <=n; ++j)
{
for (k = i + 1; k < j; ++k)
{
if (c[i][j] > c[i][k] + c[k][j] + s[i]*s[j]*s[k])
{
c[i][j] = c[i][k] + c[k][j] + s[i]*s[j]*s[k];
}
}
}
}
printf("%d\n",c[1]
);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c