dp 最优三角剖分问题

原创 2012年03月30日 21:49:20

额,基本和算法分析上的差不多,只是更加了解dp的状态吧

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
#define max 100
int n; 
int t[max][max], s[max][max];
int value[max][max]; 
int w(int i, int j, int k)
{
    return value[i][j] +value[j][k] + value[k][i];
}
int MinWeight(int n, int t[max][max], int s[max][max])
{
     for(int i=1; i<=n; i++) t[i][i] = 0;
     for(int r=2; r<=n; r++)
     for(int i=1; i<=n-r+1; i++)
     {
       int j = i+r-1;
       t[i][j] = t[i+1][j] +w(i-1,i,j);
       s[i][j] = i;
       for(int k=0; k<i+r-1; k++)
       {
        int u = t[i][k] + t[k+1][j] + w(i-1,k,j);
        if(u<t[i][j]) 
        {
          t[i][j] = u;
          s[i][j] = k;
        }
       } 
     }
     return t[1][n];
} 
int main()
{
    int ncase;
    int a, b, c;
    scanf("%d",&ncase);
    while(ncase--)
    {
      scanf("%d",&n);
      for(int i=1; i<=n*(n-1)/2; i++)
      {
      cin>>a>>b>>c;
      value[a][b] = c;
      value[b][a] = c;
      }
      int min = MinWeight(n, t, s);
      printf("%d\n",min);
      for(int i=1; i<n; i++)
      for(int j=i+1; j<i/2; j++)
      printf(" %d %d %d ",i, j, s[i][j]);
    } 
   system("pause");
   return 0;
}


算法重拾之路——凸多边形最优三角剖分

算法重拾之路——凸多边形最优三角剖分
  • lx417147512
  • lx417147512
  • 2014年12月22日 11:20
  • 1575

算法笔记——【动态规划】凸多边形最优三角剖分

问题相关定义:      (1)凸多边形的三角剖分:将凸多边形分割成互不相交的三角形的弦的集合T。     (2)最优剖分:给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定...
  • u014755255
  • u014755255
  • 2016年04月06日 17:43
  • 1768

—【动态规划】凸多边形最优三角剖分

0014算法笔记——【动态规划】凸多边形最优三角剖分 分类: 算法2013-03-05 20:10 612人阅读 评论(0) 收藏 举报 三角剖分凸多边形最优解动态规划算法笔记 ...
  • pi9nc
  • pi9nc
  • 2013年08月04日 21:15
  • 10771

DP——最优矩阵链乘&&最优三角剖分

一个n*m的矩阵乘一个m*p的矩阵等于一个n*p的矩阵,运算量为mnp,现在有一组n个矩阵组成的序列,求运算量的最小值。 这是DP中的最优矩阵链乘问题,我们可以这么理解:用一个d[i][j]来存储第i...
  • SeasonJoe
  • SeasonJoe
  • 2016年05月18日 21:31
  • 294

凸多边形最优三角剖分

动态规划的经典应用----凸多边形最优三角剖分  具体的细节讲解,我就不多说啦。网上很多资料,而且讲的非常详细。下面我贴下我做的,虽然大概思路懂了,但是去实现的时候,还是遇到了很多问题。主要是没有正确...
  • keep_moving_cqu
  • keep_moving_cqu
  • 2013年11月06日 01:36
  • 1527

凸多边形的最优三角剖分

如图所示,用顶点的逆时针序列表示凸多边形,即p={v0,v1,...,vn-1}表示具有n条边的凸多边形。给定凸多边形p,以及定义在由多边形的边和弦组成的三角形上的权函数w。如图所示划分,要求确定该凸...
  • carson0408
  • carson0408
  • 2017年09月03日 15:09
  • 1084

最优配对问题(集合上的动态规划) —— 状压DP

递推: #include #include #include using namespace std; const int INF = 2e9; const int maxn = 21; st...
  • DOLFAMINGO
  • DOLFAMINGO
  • 2017年05月21日 09:29
  • 422

凸多边形的最优三角划分最详细求解步骤演示[动态规划]

问题相关定义:(1)凸多边形的三角剖分:将凸多边形分割成互不相交的三角形的弦的集合T。 (2)最优剖分:给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖...
  • liuweiyuxiang
  • liuweiyuxiang
  • 2017年12月17日 21:36
  • 356

凸多边形最优三角剖分问题

 /* * 多边形是平面上一条分段线形闭曲线。也就是说,多边形是由一系列首尾相接的直线段 * 所组成的。组成多边形的各个直线段称为该多边形的边。连接多边形相继两条边的点称为 * 多边形的顶点。当多边形...
  • fangxia722
  • fangxia722
  • 2008年10月10日 16:11
  • 1832

zoj3537 Cake 最优三角剖分(DP)

给一个多边形,若为凸多边形,则可以通过
  • yanglei040
  • yanglei040
  • 2014年05月09日 11:03
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dp 最优三角剖分问题
举报原因:
原因补充:

(最多只允许输入30个字)