凸多邊形的劃分

2022-06-09 02:39:12 字數 888 閱讀 4412

** :

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

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

輸入格式

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

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

#include using namespace std;

#define io ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)

inline int lowbit(int x)

#define ll long long

#define pb push_back

#define pii pair#define fi first

#define se second

#define inf 0x3f3f3f3f

const int n = 55, m = 35;

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);

}int cmp(ll a, ll b)

void print(ll a)

int main()

}print(f[1][n]);

return 0;

}

劃分凸多邊形

時間限制 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 這條邊,必定有乙個頂點與這條邊形成乙個三...