這道題確實想了很久。關鍵我不知道這個last點怎麼找。接下來講講我的過程吧。
1,集合:n-2條邊組成的凸多邊形的答案。(因為劃分的時候我們是按照三角形來進行劃分的所以我們可以理解為,我們的last點其實是乙個三角形,那麼我們凸邊形的權值就是兩個小凸邊形加乙個三角形的權值)。
2,屬性:最小值。
3,狀態:l,r端點。
4,last:所有可能組成的三角形。
那麼就和上一道題很相似了。所以狀態轉移方程相信也不用寫了。
#include
#include
#include
using
namespace std;
const
int n =
55, m =35;
typedef
long
long ll;
int n;
int w[n]
;ll f[n]
[n][m]
;void
add(ll a[
], ll b)
memcpy
(a, c,
sizeof c);}
void
mul(ll a[
], ll b)
memcpy
(a, c,
sizeof c);}
intcmp
(ll a[
], ll b)
void
print
(ll a)
intmain()
}}print
(f[1
][n]);
return0;
}
劃分凸多邊形
時間限制 800ms 記憶體限制 65535k 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc vc 問題描述 乙個正凸n邊形,可以用n 3條互不相交的對角線將正n邊形分成n 2個三角形。現在要求讀入n邊形的n n 20 輸出不同劃分方法的總數 要求解的是劃分方法數,而不需要輸出各種...
凸多邊形的劃分
給定乙個具有 n 個頂點的凸多邊形,將頂點從 1 至 n 標號,每個頂點的權值都是乙個正整數。將這個凸多邊形劃分成 n 2 個互不相交的三角形,對於每個三角形,其三個頂點的權值相乘都可得到乙個權值乘積,試求所有三角形的頂點權值乘積之和至少為多少。輸入格式 第一行包含整數 n,表示頂點數量。第二行包含...
凸多邊形的劃分
給定乙個具有 n 個頂點的凸多邊形,將頂點從 1 至 n 標號,每個頂點的權值都是乙個正整數。將這個凸多邊形劃分成 n 2 個互不相交的三角形,對於每個三角形,其三個頂點的權值相乘都可得到乙個權值乘積,試求所有三角形的頂點權值乘積之和至少為多少。輸入格式 第一行包含整數 n,表示頂點數量。第二行包含...