zoukankan      html  css  js  c++  java
  • 凸多边形的三角剖分

    H. 凸多边形的三角剖分

    内存限制:128 MiB时间限制:1000 ms标准输入输出
    题目类型:传统评测方式:文本比较

    题目描述

    给定一具有N个顶点(从1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?image

    输入格式

    第一行 顶点数N(N<50)。 第二行 N个顶点(从1到N)的权值,权值为小于32768的整数。

    输出格式

    第一行为各三角形顶点的权的乘积之和最小值。

    样例

    样例输入

    5
    121 122 123 245 231
    

    样例输出

    12214884





     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 int n,j;
     6 long long dp[200][200],in[200];
     7 int main()
     8 {
     9     cin>>n;
    10     memset(dp,0x3f,sizeof(dp));
    11     for(int i=1;i<=n;i++)
    12     {
    13         scanf("%lld",&in[i]);
    14     }
    15     for (int i=1;i<=n;i++)
    16     {
    17         dp[i][i]=dp[i][i+1]=0;
    18     }
    19     for(int len=1;len<=n;len++)
    20     {
    21         for(int i=1;i<=n;i++)
    22         {
    23             j=min(len+i-1,n);
    24             for(int k=i+1;k<j;k++)    
    25             {
    26                 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+in[i]*in[j]*in[k]);
    27             }
    28         }
    29     }
    30     cout<<dp[1][n];
    31 }
     



  • 相关阅读:
    HDOJ 1284 钱币兑换问题
    WA : csu1019 simple line editor
    HDOJ1232 并查集
    最长回文子串
    Where's Waldorf?
    csu 1148 词典
    csu 1011 Counting Pixels
    Product:java高精度乘法
    内置类型开方
    csu 1019 Simple Line Editor
  • 原文地址:https://www.cnblogs.com/lihaolin/p/11276923.html
Copyright © 2011-2022 走看看