折線分割平面

2021-06-28 14:32:49 字數 1521 閱讀 2533



problem description

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

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

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

sample input

21

2

sample output

27

分析: 先看

n條相交的直線最多能把平面分割成多少塊

當新增第

n條只顯示,為了使平面最多, 則第

n條直線要與前面的

n-1條直線都相交,且沒有任何三條直線教育乙個點。

則第n條直線有

n-1個交點。由於每增加

n個交點,就增加

n+1個平面,所以用

n條直線來分隔平面,最多的數是

1+1+2+3+

…+n=1+n*(n+1)/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 = 2n

2+ 1

如果把每次加進來的平行邊讓它們一頭相交

則平面1、3

已經合為乙個面,因此,每一組平行線相交後,就會較少乙個面,

所以所求就是平行線分割平面數減去n

,為2n2-n

+ 1

利用上述總結公式

f(n)=2n2

-n+ 1

#includeint main()

或者利用公式

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

n-1)

+1

#includeint main()

return 0;

}



折線分割平面

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

折線分割平面

折線分割平面 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩...

折線分割平面

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