劃分平面問題
多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條折線劃分乙個平面,可以劃分為幾部分?
分析:
增加到n條折線時,折線的每條邊最多增加2(n-1)個交點,則增加2(n-1)+1個部分。因為折線有兩條邊,應該增加了2[2(n-1)+1]個部分,但是由於折線有交點,所以有兩個部分會合併成乙個部分,最後應該是增加了2[2(n-1)+1]-1個部分。即f(n)=f(n-1)+4n-3。
**:
#includeint main()
printf("%d\n",a[n]);
return 0;
}
3.題目:
說起佐羅,大家首先想到的除了他臉上的面具,恐怕還有他每次刻下的「z」字。我們知道,乙個「z」可以把平面分為2部分,兩個「z」可以把平面分為12部分,那麼,現在的問題是:如果平面上有n個「z」,平面最多可以分割為幾部分呢?
說明1:「z」的兩端應看成射線
說明2:「z」的兩條射線規定為平行的
分析:增加到n個z時,z的每條邊最多增加3(n-1)個交點,則增加3(n-1)+1個部分。因為z有三條邊,應該增加3[3(n-1)+1]個部分,但是由於z有兩個交點,所以應該剪掉2個合併的部分,結果應該是增加了3[3(n-1)+1]-2個部分。即f(n)=f(n-1)+9n-8。
**:
#includeint main()
printf("%d\n",a[n]);
return 0;
}
遞推演算法之平面分割問題總結
這是一類問題,首先由直線劃分區域到折線劃分區域,再延伸到封閉圖形劃分區域,最後在推廣為平面劃分空間的問題。一 n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 可能你以前就見過這題目,這充其量是一道初中的思考題。當有n 1條直線時,平面最多被分成了f n 1 個區域。則...
演算法競賽寶典 遞推演算法 平面分割
問題描述 凸多邊形的三角形剖分 cpp c pas 傳說魔法世界的創世神使用過的一件上古神器遺失在乙個凸多邊形的二維魔法空間中,誰若擁有這件上古神器,將會成為世界之主。修羅王很想擁有這件上古神器,他打算通過若干條互不相交的對角線,把這個多邊形剖分成了若干個三角形來尋找,現在的任務是輸入凸多邊形的邊數...
數塔問題 遞推演算法
關於輸入 本題輸入乙個正整數n,然後輸入n行數字,其中第i行有i個數字。例如 73 8 8 1 0 2 7 4 4 4 5 2 6 5 本題輸入的三角陣列形狀如下圖1,在處理資料時按圖2形狀來處理。在上面的輸入案例中,可以按圖3所示數塔來處理。圖1 圖2 圖3 問題需求 從數塔頂層到底層的某處所經過...