HDOJ 2050 折線分割平面

2021-08-21 20:46:15 字數 1024 閱讀 9784

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

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

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

2 1 22

7先從直線分割開始分析,直線分割要想盡可能多的分塊,需要直線與平面內的其他直線都相交,並且沒有三條直線交於一點,因此當第n條直線新增時,要與n-1條直線相交,構成n-1個交點,從而會增加n個平面,所以n條直線分割的平面數f(n) = f(n-1) + n, 而f(1) = 2, 通過遞迴就可以得到 f

(n)=

n(n+

1)2+

1 f(n

)=n(

n+1)

2+1接下來開始分析折線分割,因為每次新增一條折線,就相當於新增兩條相交的直線,所以:

*先假設所新增的折線為兩條平行直線,那麼新增第n條折線的時候,平面內已經有2n-2條直線,那麼新增第2n-1條和第2n條直線都會增加2n-2個交點,產生2n-1個平面;

*那麼新增第n條折線,會新增 2(2n-1) 個平面,總的平面數根據遞推,應該是:2n

2+1 2n2

+1; *然後,在來考慮折線,折線就是沒兩條直線相交,切折線兩邊是射線,也就是說,相交之後,交點另一部分的分塊是合二為一了,所以2n條直線相交,就少了n塊;

*因此,最後折線 : f

(n)=

2n2−

n+1 f(n

)=2n

2−n+

1

#include

using

namespace

std;

int main()

}

HDOJ 2050 折線分割平面(簡單遞推)

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

hd水題 hdoj2050 折線分割平面

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

HDU2050 折線分割平面

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