HDU 2050 折線分割平面

2021-08-23 12:23:00 字數 1081 閱讀 1480

problem description

我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。

輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n(0output

對於每個測試例項,請輸出平面的最大分割數,每個例項的輸出佔一行。

sample input

sample output

先上**:

#include int main()

return 0;

}

這題不會推,看下面的解釋吧。

algorithm analyse

我們不忙著解這道題。我們先來看一下n條相交的直線最多能把平面分割成幾塊。

很明顯,當新增第n條直線時,為了使平面最多,則第n條直線要與前面n-1條直線都相交,切沒有任何三條線交於乙個點。

這樣,第n條直線一共有n-1個交點。我們知道,增加n個焦點,則增加n+1個平面。

所以n條直線分割平面最大數是1 + 1 + 2 + 3 + ... + n = (n2 + n + 2) / 2

熟悉了線分割平面,現在,我們再來看看,每次增加的不是一條直線,而是兩條相互平行的線,那又如何呢?

當第n次新增時,前面已經有2n-2條直線了,按我們上面討論的知道,第n次新增時,第2n-1條直線和第2n條直線各能增加2(n-1)+1個平面。

所以第n次新增增加的面數是2[2(n-1) + 1] = 4n - 2 個。因此,總面數應該是1 + 4n(n+1)/2 - 2n = 2n2 + 1

現在我們再來看如果把每次加進來的平行邊讓它們一頭相交,情況又如何呢?

我們看到,平面1、3已經合為乙個面,既少了乙個面。因此,每當一組平行線相交後,就會減少乙個面。

因此,本題所要求的折線分割平面,自然就是上面求的的平行線分割平面數減去n。

即2n2 - n + 1

HDU2050 折線分割平面

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

hdu 2050 折線分割平面

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

hdu 2050 折線分割平面

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