AcWing 1069 凸多邊形的劃分

2022-09-09 18:06:25 字數 2032 閱讀 1888

link

乍一看好像沒什麼思路,但是不難看出每次找乙個點,就會把當前區間分成兩半,分開求兩個區間在加上斷開的代價就是整個區間的代價了

那就區間dp唄(見下圖)

我們用f[l][r]表示點l,l+1,l+2....r-1,r的劃分最小代價

也就是多邊形(l,l+1),(l+1,l+2)...(r-1,r),(r,l)的劃分代價

嗯...大概就是這樣
/*

陣列沒開夠,爆零兩行淚

ll開成 int,爆零兩行淚

多組忘清空,爆零兩行淚

dp 沒初值,爆零兩行淚

深搜沒邊界,爆零兩行淚

廣搜忘出隊,爆零兩行淚

輸入沒加 &,爆零兩行淚

模數沒看見,爆零兩行淚

-1 不輸出,爆零兩行淚

越界不特判,爆零兩行淚

空間開一倍,爆零兩行淚

無向變有向,爆零兩行淚

題意沒審清,爆零兩行淚

檔名起錯,爆零兩行淚

除錯忘刪除,爆零兩行淚

檔案不儲存,爆零兩行淚

檔案不讀入,爆零兩行淚

檔案不輸出,爆零兩行淚

*/#include

using

namespace std;

const

int n=

55,m=35;

int n;

int w[n]

,f[n]

[n];

intmain()

printf

("%d\n"

,f[1

][n]);

return0;

}

/*

陣列沒開夠,爆零兩行淚

ll開成 int,爆零兩行淚

多組忘清空,爆零兩行淚

dp 沒初值,爆零兩行淚

深搜沒邊界,爆零兩行淚

廣搜忘出隊,爆零兩行淚

輸入沒加 &,爆零兩行淚

模數沒看見,爆零兩行淚

-1 不輸出,爆零兩行淚

越界不特判,爆零兩行淚

空間開一倍,爆零兩行淚

無向變有向,爆零兩行淚

題意沒審清,爆零兩行淚

檔名起錯,爆零兩行淚

除錯忘刪除,爆零兩行淚

檔案不儲存,爆零兩行淚

檔案不讀入,爆零兩行淚

檔案不輸出,爆零兩行淚

*/#include

using

namespace std;

const

int n=

55,m=35;

typedef

long

long ll;

int n;

ll w[n]

,f[n]

[n][m]

,temp[m]

;void

add(ll a[

],ll b)

memcpy

(a,c,

sizeof

(c))

;return;}

void

mul(ll a[

],ll b)

memcpy

(a,c,

sizeof

(c))

;return;}

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 輸出不同劃分方法的總數 要求解的是劃分方法數,而不需要輸出各種...

469 凸多邊形

題目描述 給定乙個按順序連線的多邊形的頂點,判斷該多邊形是否為凸多邊形。凸多邊形的定義 注 頂點個數至少為 3 個且不超過 10,000。座標範圍為 10,000 到 10,000。你可以假定給定的點形成的多邊形均為簡單多邊形 簡單多邊形的定義 換句話說,保證每個頂點處恰好是兩條邊的匯合點,並且這些...

驗證多邊形是否為凸多邊形

驗證多邊形是否為凸多邊形 2108 shape of hdu include define debug 0 int crossmulti int x0,int y0,int x1,int y1,int x2,int y2 int main int n,i int f x,f y 第1個點 int s...