HDUOJ2050 折線分平面的問題 衍生系列

2021-09-11 00:02:59 字數 2281 閱讀 8430

由這一題可以推一類的問題,首先由直線劃分區域到折線劃分區域,再延伸到封閉圖形劃分區域,

最後在推廣為平面劃分空間的問題。

(1) n條直線最多分平面問題

題目:n條直線,最多可以把平面分為多少個區域。

解析: 可能你以前就見過這題目,這充其量是一道初中的思考題。

但乙個型別的題目還是從簡單的入手,才容易發現規律。

當有n-1條直線時,平面最多被分成了f(n-1)個區域。

則第n條直線要是切成的區域數最多,就必須與每條直線相交且不能有同一交點。

這樣就會得到n-1個交點。這些交點將第n條直線分為2條射線和n-2條線斷。

而每條射線和線斷將以有的區域一分為二。這樣就多出了2+(n-2)個區域。

故:f(n)=f(n-1)+n

f(n-1)=f(n-2)+n-1

……f(2)=f(1)+2

因為,f(1)=2

所以,f(n)=n*(n+1)/2 + 1

(2) 折線分平面(hdu2050)

題目:解析:根據直線分平面可知,由交點決定了射線和線段的條數,進而決定了新增的區域數。

當n-1條折線時,區域數為f(n-1)。為了使增加的區域最多,

則折線的兩邊的線段要和n-1條折線的邊,即2*(n-1)條線段相交。

那麼新增的線段數為4*(n-1),射線數為2。

但要注意的是,折線本身相鄰的兩線段只能增加乙個區域。

故:f(n)=f(n-1)+4*(n-1)+1

f(n-1)=f(n-2) + 4*(n-2)+1

......

f(2)=f(1) + 4*1 + 1 

因為,f(1)=2

所以,f(n)=2n^2-n+1

#include #include // 折線分平面

// f(n)=2*n^2-n+1

int main(int argc, char *ar**)

{ int n, i, m;

long long int p;

while(scanf("%d", &n) != eof)

{ for(i=0; i(3) 封閉圖形分平面問題

三角形劃分區域(hdu1249)

題目:解析:當n-1個三角形時,區域面積數為 f(n-1) 。

要區域數最多,那麼第n個三角形就必須與前n-1個三角形相交。

則第n個三角形的一條邊就被分割成 2*(n-1)-1條線段與兩個半條的線段 ,

即相當於2*(n-1)條線段。則第 n 個三角形被分割成 3*2*(n-1)條線段。

則增加了 6*(n-1)個面。

故:f(n)=6*(n-1)+f(n-1)

f(n-1)=6*(n-2)+f(n-2)

f(2)=6*1+f(1)

因為,f(1)=2

所以,f(n)=3*n*(n-1)+2

圓形劃分區域

題目:設有n條封閉曲線畫在平面上,而任何兩條封閉曲線恰好相交於兩點,

且任何三條封閉曲線不相交於同一點,問這些封閉曲線把平面分割成的區域個數。

解析:當n-1個圓時,區域數為f(n-1).那麼第n個圓就必須與前n-1個圓相交,

則第n個圓被分為2(n-1)段線段,增加了2(n-1)個區域。

故: f(n)=f(n-1)+2*(n-1)    

f(n-1)=f(n-2)+2*(n-2)

f(2)=f(1)+2*1

因為,f(1)=2

所以,f(n)=n^2-n+2

(5)平面分割空間問題(hdu1290)

題目:解析:由二維的分割問題可知,平面分割與線之間的交點有關,即交點決定射線和線段的條數,

從而決定新增的區域數。

試想在三維中則是否與平面的交線有關呢?

當有n-1個平面時,分割的空間數為f(n-1)。

要有最多的空間數,則第n個平面需與前n-1個平面相交,且不能有共同的交線。

即最多有n-1 條交線。而這n-1條交線把第n個平面最多分割成g(n-1)個區域。

(g(n)為(1)中的直線分平面的個數)此平面將原有的空間一分為二,

則最多增加g(n-1)個空間。

故:f(n)=f(n-1)+g(n-1)    (  ps: g(n)=n(n+1)/2+1  )

f(n-1)=f(n-2)+g(n-2)

f(2)=f(1)+g(1)

因為,f(1)=g(1)=2

所以,f(n)=2+(1*2+2*3+3*4+……+(n-1)n)/2+(n-1)

=[ (1^2+2^2+3^2+4^2+……+n^2) - (1+2+3+……+n ) ]/2 + n+ 1

HDU oj 2050 折線分割平面

problem description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包...

HDU 2050 折線分平面

1 n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 可能你以前就見過這題目,這充其量是一道初中的思考題。但乙個型別的題目還是從簡單的入手,才容易發現規律。當有n 1條直線時,平面最多被分成了f n 1 個區域。則第n條直線要是切成的區域數最多,就必須與每條直線相交且不...

HDU 2050 折線拆分平面

problem description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分。input 輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含...