HDU2050分割問題

2021-07-11 10:35:22 字數 876 閱讀 7335

題目出自杭電

相關的問題資料可以在以下鏈結中找到:

(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-2)+(n-1)+n

……=f(1)+1+2+……+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)+2-1

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

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

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

=2n^2-n+1

#include 

int main()

return

0;}

折線分割平面 (hdu 2050)

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

HDU 2050 折線分割平面問題

hdu2050 折線分割平面 這種型別的題目,在acm程式設計中比較經典,這裡我們由淺入深來學習下 1 在乙個平面上有乙個圓和n條直線,這些直線中每一條在圓內同其他直線相交,假設沒有3條直線相 交於一點,試問這些直線將圓分成多少區域。很容易看出遞推關係,每新增一條直線,都將原來所有的區域分成兩半,因...

HDU2050 折線分割平面

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