** :
給定乙個具有 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 這條邊,必定有乙個頂點與這條邊形成乙個三...