凸多邊形的三角剖分

2021-07-13 23:02:52 字數 1041 閱讀 1402

給定一具有

n 個頂點(從 1到

n 編號)的凸多邊形,每個頂點的權均已知。

問如何把這個凸多邊形劃分成 n−

2個互不相交的三角形,使得這些三角形頂點的權的乘積之和最小?

第一行 頂點數

n (

n<

50)。

第二行

n 個頂點(從 1到

n )的權值,權值為小於

32768

的整數。

第一行為各三角形頂點的權的乘積之和最小值。

5

121 122 123 245 231

乙個凸多邊形剖分乙個三角形後,可以將凸多邊形剖分成三個部分:

乙個三角形,二個凸多邊形。

如果我們按順時針將頂點編號,則可以相鄰兩個頂點描述乙個凸多邊形。 設 f

(i,j

) 表示 ij

這一段連續頂點的多邊形劃分後最小乘積

列舉點

k ,i、

j 和

k相連成基本三角形,並把原多邊形劃分成兩個子多邊形,則有 f(

i,j)

=min

1<=

i<

k<

j<=

n

時間複雜度 o(

n3)

#include 

#include

#include

#define min(x,y) ((x)<(y)?(x):(y))

#define ll long long

using

namespace

std;

ll n;

ll w[100];

ll f[60][60];

int main()

printf("%lld\n",f[1][n]);

return

0;}

凸多邊形三角剖分問題

1 凸多邊形的三角剖分 將凸多邊形分割成互不相交的三角形的弦的集合t。2 最優剖分 給定凸多邊形p,以及定義在由多邊形的邊和弦組成的三角形上的權函式w。要求確定該凸多邊形的三角剖分,使得該三角剖分中諸三角形上權之和為最小。凸多邊形三角剖分如下圖所示 設 p v0,v1,vn 是n 1個頂點的多邊形 ...

凸多邊形最優三角剖分

問題描述 使用動態規劃演算法解凸多邊形最優三角剖分問題,具體來說就是,依據遞迴式,按照順序求得子問題,使得該三角剖分中諸三角形上權之和為最小。輸入形式 在螢幕上輸入凸多邊形頂點個數和頂點座標。輸出形式 最優三角剖分後的三角形頂點。樣例輸入 8 26 0 20 0 10 10 0 22 12 27 2...

凸多邊形的最優三角剖分

如圖所示,用頂點的逆時針序列表示凸多邊形,即p 表示具有n條邊的凸多邊形。給定凸多邊形p,以及定義在由多邊形的邊和弦組成的三角形上的權函式w。如圖所示劃分,要求確定該凸多邊形的三角剖分,使得該三角形上的勸之和最小。解析 若凸 n 1 邊形p 的最優剖分t包含三角形v0vkvn,1 k n 1,則t的...