2025-09-29 18:59:55 +0300 MSK
Minimum Score Triangulation of Polygon
Links
Code
class Solution:
def minScoreTriangulation(self, values: List[int]) -> int:
@lru_cache(None)
def dp(i, j):
if i + 2 > j:
return 0
if i + 2 == j:
return values[i] * values[i + 1] * values[j]
return min(
(values[i] * values[k] * values[j] + dp(i, k) + dp(k, j))
for k in range(i + 1, j)
)
return dp(0, len(values) - 1)