给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], …, A[N-1]。

假设您将多边形剖分为 N-2 个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角剖分的分数是进行三角剖分后所有 N-2 个三角形的值之和。

返回多边形进行三角剖分后可以得到的最低分。




来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-score-triangulation-of-polygon
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
————————————————————————————————————————
解题思路:

使用动态规划,建立一个二维数组,dp[i][j]表示从第i点到第j点分割的三角形的总和的最小值。

状态转移方程为:
dp[i][j] = min(dp[i][j],A[i]*A[k]*A[j]+dp[i][k]+dp[k][j]),其中i<k<j。

最终返回的结果为dp[0][length-1]

C++代码如下:

class Solution {
public:int minScoreTriangulation(vector<int>& A) {int length = A.size();vector<vector<int>> dp(length,vector<int>(length,INT_MAX));   //初始化为最大值for(int i = 0;i<length;i++){for(int j = i-1;j>=0;j--){if(i-j<2)    //如果两点之间的距离小于3,则不能构成三角形dp[j][i]=0;elsefor(int k = j+1;k<i;k++)dp[j][i] = min(dp[j][i],A[i]*A[j]*A[k]+dp[j][k]+dp[k][i]);}}return dp[0][length-1];}
};

leetcode - 1039. 多边形三角剖分的最低得分相关推荐

  1. LeetCode 1039. 多边形三角剖分的最低得分(区间DP)

    文章目录 1. 题目 2. 解题 1. 题目 给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], ..., A[N-1]. 假设您将多边形剖分为 N-2 个三角形 ...

  2. C++ 实现 力扣1039. 多边形三角剖分的最低得分

    力扣1039. 多边形三角剖分的最低得分 动态规划问题 建立动态规划方程的过程: opt( l, r ) 表示从顶点i到j的最优(最低)分数 ij距离为1时分数是0(这里一直没搞清楚所以方程一直建不起 ...

  3. 【经典算法题】多边形三角剖分的最低得分

    [经典算法题]多边形三角剖分的最低得分 Leetcode 1039 多边形三角剖分的最低得分 题目描述:Leetcode 1039 多边形三角剖分的最低得分 分析 本题的考点:动态规划. 分析如下: ...

  4. 5047. 多边形三角剖分的最低得分

    5047. 多边形三角剖分的最低得分 转载请注明出处 附上我的博客链接 四元君 题目难度 Medium 题目描述 给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i] ...

  5. 【1039】多边形三角剖分的最低得分

    给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], -, A[N-1].假设您将多边形剖分为N-2 个三角形.对于每个三角形,该三角形的值是顶点标记的乘积,三角剖 ...

  6. 【Leetcode 1039】多边形三角剖分的最低得分

    问题描述 给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], ..., A[N-1].假设您将多边形剖分为 N-2 个三角形.对于每个三角形,该三角形的值是顶点标 ...

  7. leetcode算法题--多边形三角剖分的最低得分★

    原题链接:https://leetcode-cn.com/problems/minimum-score-triangulation-of-polygon/ 和矩阵连乘问题相似 动态规划: dp[i][ ...

  8. leetcode1039. 多边形三角剖分的最低得分(动态规划)

    给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], -, A[N-1]. 假设您将多边形剖分为 N-2 个三角形.对于每个三角形,该三角形的值是顶点标记的乘积,三 ...

  9. leetcode-多边形三角剖分的最低得分

    给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], -, A[N-1]. 假设您将多边形剖分为 N-2 个三角形.对于每个三角形,该三角形的值是顶点标记的乘积,三 ...

最新文章

  1. LINUX 查找tomcat日志关键词
  2. 基于深度学习的文本数据特征提取方法之Glove和FastText
  3. Node.js Promise.all 限制并发数量
  4. 【Java进阶】Spring Boot集成ES
  5. linux系统定时任务crond入门
  6. BZOJ4567 SCOI2016背单词(trie+贪心)
  7. BZOJ 2969 期望
  8. 【作业】条件、循环、函数定义、字符串操作练习
  9. vivado与modelsim的联合仿真
  10. C++ Primer 学习笔记_98_特殊的工具和技术 --优化内存分配
  11. USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)
  12. 30岁学习编程晚么?
  13. 《极限逃亡》12.3正式上线链游玩家|末日围城、文明重启
  14. 杂谈eMule协议的由来
  15. the sun also rises day17
  16. OpenWrt路由器macvlan单线多拨的方法
  17. parted 4T磁盘
  18. android 全选功能,Android实现ListView控件的多选和全选功能实例
  19. android 和风图标字体移植显示墨迹天气图标
  20. 怎么用 UDP 实现 TCP?

热门文章

  1. 使用Dundas控件在web应用上展现多维数据集(二)
  2. TypeScript 接口(Interface)
  3. 容器编排技术 -- Init 容器
  4. 容器编排技术 -- Kubernetes kubectl rolling-update 命令详解
  5. Spring Security 教程
  6. leetcode 移动零
  7. c语言 字符去重复以及冒泡排序
  8. 一个列表包揽所有你需要的Windows应用
  9. 【Pyhton】随机漫步散点图
  10. docker知识总结