leetcode - 1039. 多边形三角剖分的最低得分
给定 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. 多边形三角剖分的最低得分相关推荐
- LeetCode 1039. 多边形三角剖分的最低得分(区间DP)
文章目录 1. 题目 2. 解题 1. 题目 给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], ..., A[N-1]. 假设您将多边形剖分为 N-2 个三角形 ...
- C++ 实现 力扣1039. 多边形三角剖分的最低得分
力扣1039. 多边形三角剖分的最低得分 动态规划问题 建立动态规划方程的过程: opt( l, r ) 表示从顶点i到j的最优(最低)分数 ij距离为1时分数是0(这里一直没搞清楚所以方程一直建不起 ...
- 【经典算法题】多边形三角剖分的最低得分
[经典算法题]多边形三角剖分的最低得分 Leetcode 1039 多边形三角剖分的最低得分 题目描述:Leetcode 1039 多边形三角剖分的最低得分 分析 本题的考点:动态规划. 分析如下: ...
- 5047. 多边形三角剖分的最低得分
5047. 多边形三角剖分的最低得分 转载请注明出处 附上我的博客链接 四元君 题目难度 Medium 题目描述 给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i] ...
- 【1039】多边形三角剖分的最低得分
给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], -, A[N-1].假设您将多边形剖分为N-2 个三角形.对于每个三角形,该三角形的值是顶点标记的乘积,三角剖 ...
- 【Leetcode 1039】多边形三角剖分的最低得分
问题描述 给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], ..., A[N-1].假设您将多边形剖分为 N-2 个三角形.对于每个三角形,该三角形的值是顶点标 ...
- leetcode算法题--多边形三角剖分的最低得分★
原题链接:https://leetcode-cn.com/problems/minimum-score-triangulation-of-polygon/ 和矩阵连乘问题相似 动态规划: dp[i][ ...
- leetcode1039. 多边形三角剖分的最低得分(动态规划)
给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], -, A[N-1]. 假设您将多边形剖分为 N-2 个三角形.对于每个三角形,该三角形的值是顶点标记的乘积,三 ...
- leetcode-多边形三角剖分的最低得分
给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], -, A[N-1]. 假设您将多边形剖分为 N-2 个三角形.对于每个三角形,该三角形的值是顶点标记的乘积,三 ...
最新文章
- LINUX 查找tomcat日志关键词
- 基于深度学习的文本数据特征提取方法之Glove和FastText
- Node.js Promise.all 限制并发数量
- 【Java进阶】Spring Boot集成ES
- linux系统定时任务crond入门
- BZOJ4567 SCOI2016背单词(trie+贪心)
- BZOJ 2969 期望
- 【作业】条件、循环、函数定义、字符串操作练习
- vivado与modelsim的联合仿真
- C++ Primer 学习笔记_98_特殊的工具和技术 --优化内存分配
- USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)
- 30岁学习编程晚么?
- 《极限逃亡》12.3正式上线链游玩家|末日围城、文明重启
- 杂谈eMule协议的由来
- the sun also rises day17
- OpenWrt路由器macvlan单线多拨的方法
- parted 4T磁盘
- android 全选功能,Android实现ListView控件的多选和全选功能实例
- android 和风图标字体移植显示墨迹天气图标
- 怎么用 UDP 实现 TCP?