HDU2050 折線分割平面(遞推)

2021-08-22 08:23:32 字數 1320 閱讀 8468

problem description

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

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

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

sample input

2 1 2

sample output

2 7

author

lcy分析一下:

對於第n-1條折線,它把空間劃分的區域為f(n-1),為了讓增加的區域更多,新增的折線要和之前的n-1條折線的2*(n-1)條邊都相交,產生4*(n-1)條新的線段(圖中黃藍),每條線段或射線(綠)產生乙個新區域,但是折線的頭(黃色)的兩線段一共只能產生乙個區域,所以新增區域的數量為4*(n-1) -1+24*(n-1) +1 ;

所以有遞推公式:

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

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

.......

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

=f(1) +4(1+2+3+4+....+n-1)+n-1;

=2+4((n-1)(n-1+1)/2)+n-1;

=2n^2-n+1;

#includeusing namespace std;

typedef long long ll;

int main()

return 0;

}

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 行資料,每行包...