這是一類問題,首先由直線劃分區域到折線劃分區域,再延伸到封閉圖形劃分區域,最後在推廣為平面劃分空間的問題。
一、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
二、折線分平面(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
三、三角形劃分區域(hdu1249)
解析:當n-1個三角形時,區域面積數為 f(n-1) 。
要區域數最多,那麼第n個三角形就必須與前n-1個三角形相交。
則第n個三角形的一條邊就被分割成 2*(n-1)-1條線段與兩個半條的線段 ,
即相當於2*(n-1)條線段。則第 n 個三角形被分割成 3*2*(n-1)條線段。
則增加了 6*(n-1)個面。
故:f(n)=6*(n-1)+f(n-1)
f(n-1)=6*(n-2)+f(n-2)
........
f(2)=6*1+f(1)
因為,f(1)=2
所以,f(n)=3*n*(n-1)+2
四、封閉曲線分平面問題
題目大致如設有n條封閉曲線畫在平面上,而任何兩條封閉曲線恰好相交於兩點,且任何三條封閉曲線不相交於同一點,問這些封閉曲線把平面分割成的區域個數。
析:當n-1個圓時,區域數為f(n-1).那麼第n個圓就必須與前n-1個圓相交,則第n個圓被分為2(n-1)段線段,增加了2(n-1)個區域。
故: f(n)=f(n-1)+2(n-1)
=f(1)+2+4+……+2(n-1)
=n^2-n+2
五、平面分割空間問題(hdu1290)
由二維的分割問題可知,平面分割與線之間的交點有關,即交點決定射線和線段的條數,從而決定新增的區域數。試想在三維中則是否與平面的交線有關呢?當有n-1個平面時,分割的空間數為f(n-1)。要有最多的空間數,則第n個平面需與前n-1個平面相交,且不能有共同的交線。即最多有n-1 條交線。而這n-1條交線把第n個平面最多分割成g(n-1)個區域。(g(n)為(1)中的直線分平面的個數 )此平面將原有的空間一分為二,則最多增加g(n-1)個空間。
故:f=f(n-1)+g(n-1) ps:g(n)=n(n+1)/2+1
=f(n-2)+g(n-2)+g(n-1)
……=f(1)+g(1)+g(2)+……+g(n-1)
=2+(1*2+2*3+3*4+……+(n-1)n)/2+(n-1)
=(1+2^2+3^2+4^2+……+n^2-1-2-3-……-n )/2+n+1
=(n^3+5n)/6+1
[源位址](
遞推演算法 劃分平面問題
劃分平面問題 多k個交點,多k 1個部分 1.題目 n條直線劃分乙個平面,可以劃分為幾部分?分析 增加到n條直線時,最多增加了n 1個交點,則增加了n個部分,即f n f n 1 n。includeint main printf d n a n 或輸出a i 1 return 0 2.題目 n條折線...
演算法競賽寶典 遞推演算法 平面分割
問題描述 凸多邊形的三角形剖分 cpp c pas 傳說魔法世界的創世神使用過的一件上古神器遺失在乙個凸多邊形的二維魔法空間中,誰若擁有這件上古神器,將會成為世界之主。修羅王很想擁有這件上古神器,他打算通過若干條互不相交的對角線,把這個多邊形剖分成了若干個三角形來尋找,現在的任務是輸入凸多邊形的邊數...
遞推之折線分割平面
折線分割平面 time limit 1000 ms memory limit 32768 kib submit statistic discuss problem description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條...