凸多邊形的劃分

2022-04-30 23:12:19 字數 988 閱讀 3003

給定乙個具有 n 個頂點的凸多邊形,將頂點從 1 至 n 標號,每個頂點的權值都是乙個正整數。

將這個凸多邊形劃分成 n−2 個互不相交的三角形,對於每個三角形,其三個頂點的權值相乘都可得到乙個權值乘積,試求所有三角形的頂點權值乘積之和至少為多少。

輸入格式

第一行包含整數 n,表示頂點數量。

第二行包含 n 個整數,依次為頂點 1 至頂點 n 的權值。

輸出格式

輸出僅一行,為所有三角形的頂點權值乘積之和的最小值。

資料範圍

n≤50,

資料保證所有頂點的權值都小於109

輸入樣例:

5121 122 123 245 231

輸出樣例:

12214884

思路:多邊形的一條邊[l,r]一定會在某個三角形中,而它的邊對著的點在[l+1,r-1]之間,我們看圖可以發現,乙個三角形可以把乙個多邊形分成兩個多邊形,以(1,7)為邊,連線4的綠色三角形把圖分成了[1,4]和[4,7]的多邊形,由於三角形之間不能有交叉,所以左邊多邊形怎麼劃分和右邊怎麼劃分沒關係,所以區間[1,7]的多邊形就分成了[1,4]和[4,7]兩個多邊形。

這道題很容易被想成環形dp,但其實最終的答案只有f[1,n]。因為對於(1,n)這條邊的劃分可以在任意[2,n-1]之間的任一點,也就是把所有情況都考慮了。

劃分凸多邊形

時間限制 800ms 記憶體限制 65535k 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc vc 問題描述 乙個正凸n邊形,可以用n 3條互不相交的對角線將正n邊形分成n 2個三角形。現在要求讀入n邊形的n n 20 輸出不同劃分方法的總數 要求解的是劃分方法數,而不需要輸出各種...

凸多邊形的劃分

給定乙個具有 n 個頂點的凸多邊形,將頂點從 1 至 n 標號,每個頂點的權值都是乙個正整數。將這個凸多邊形劃分成 n 2 個互不相交的三角形,對於每個三角形,其三個頂點的權值相乘都可得到乙個權值乘積,試求所有三角形的頂點權值乘積之和至少為多少。輸入格式 第一行包含整數 n,表示頂點數量。第二行包含...

凸多邊形的劃分

有乙個 n 個頂點的多邊形,每個頂點都有乙個權值,求如何劃分使得劃分後的 n 2 個三角形的權值乘積和最小。這題本意是要寫高精度的,不過這不是重點。我們考慮用 f i j 表示以 i 和 j 之間的頂點所構成的多邊形的最小權值乘積和,那麼我們考慮作為 i,j 這條邊,必定有乙個頂點與這條邊形成乙個三...