還是決定看看下一道題,之後收穫了乙份驚喜
高中的數列知識,這裡先上題:
problem description
我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。
輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n(0output
對於每個測試例項,請輸出平面的最大分割數,每個例項的輸出佔一行。
sample input
sample output2
12
注意的是這裡說的折線中的拐點必須在平面內,如果在邊上的話,就是兩條直線。2
7
說一下推導過程:
一條直線可以分成2個平面,兩條線是4個,三條線是7個,其實也不難看出,如果想要使最多平面出現,就需要保證避免出現超過2條直線同時相交的情況(因為三條線同時相交意味著交於一點),我想此時你也不難發現這樣乙個數列,
但這個不是重點,如果,我們再來推導平行線的情況呢?
1組平行線會分出3個平面,2組平行線會分出9個,3組就是19個,(不想上傳了,這個就請自己實踐吧)這樣就會發現平行線組數x和分出的平面的數量的關係為這個,高中數學較好的同學應該還有印象。
明白這些,我們進行下乙個步驟,這道題其實**沒寫多少,但是思路真的很重要。
我們可以假想一組平行線轉化成一組折線的方式,這樣就會少了乙個分割,就會只形成了兩個平面,少了乙個,2組平行線是9組,折線則少了2種。現在應該足夠幫助回想起來這些數列的知識咯,公式就變成了
an=2* n*n+1-n
稍微調整一下就行了。
**就12行:
自己最喜歡做的題型之一,不難,但十分考高中的數學知識#include
using namespace std;
int main()
return0;
}
折線分割平面
我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n 0 n 10000 表示折...
折線分割平面
折線分割平面 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩...
折線分割平面
problem description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包...