【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

06-02 1078阅读

本文涉及知识点

C++动态规划 数学

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

你有一个凸的 n 边形,其每个顶点都有一个整数值。给定一个整数数组 values ,其中 values[i] 是第 i 个顶点的值(即 顺时针顺序 )。

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

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

示例 1:

输入:values = [1,2,3]

【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

输出:6

解释:多边形已经三角化,唯一三角形的分数为 6。

示例 2:

【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

输入:values = [3,7,4,5]

输出:144

解释:有两种三角剖分,可能得分分别为:375 + 457 = 245,或 345 + 347 = 144。最低分数为 144。

示例 3:

【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

输入:values = [1,3,1,4,1,5]

输出:13

解释:最低分数三角剖分的得分情况为 113 + 114 + 115 + 111 = 13。

提示:

n == values.length

3 const int c1 = j - i + 1; dp[ct][i] = min(dp[ct][i],dp[c1][i] + dp[ct+1-c1][(j)%N] + values[i]* values[(i+ct-1)%N]* values[j%N]); } public: int minScoreTriangulation(vector const int N = values.size(); vector dp[3][i] = values[i] * values[(i + 1) % N] * values[(i + 2) % N]; } for (int ct = 4; ct

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码