法一:這類題目一般來說是找規律,找出遞推式,找遞推式有以下兩種方
①直接找規律(這個要數感好),對於這一道題保險一點將第四幅圖畫出來,得38個(這個要手不殘)——不過這個來得簡單粗暴,有經驗的話其實答案出來得挺快
②推:第n個三角形,它的每條邊最多與前n-1個三角形的每2條邊相交,因此第n個三角形與前n-1個三角形共形成2*(n-1)3個交點。這些交點把第n個三角形分割成6(n-1)個線段。其中每條線段都把原來的區域一分為二,即新增6*(n-1)個區域。
都可以得出遞推式:a[i]=a[i-1]+a[i-1]*6;
於是就有了兩個**:
//遞迴版
#include
int f(int
x)int main()
//遞推版
#include
int a[105]=;//沒有三角形仍然還有乙個平面
int main()
其實還有乙個:記憶化(不過這題記憶化也沒啥用)
#include
int a[105]=,n;
int f(int
x)int main()
法二:看起來level超高,不過略麻煩,考試場上實在不行別裝逼。
思想:沒啥思想,就是想這個塊數是從哪兒來的,就像分類數數一樣數出來。
#include
int main()
//沒有三角形
if(n==1)
//沒有角上那塊
if(n==2)
//沒有中心與角之間那塊
ans+=n*3;//角
ans+=3*n*(n-2);//中心與角之間
ans+=2;//外面和中心
printf("%d",ans);
return
0;}
三角形劃分區域
題目描述 用n個三角形最多可以把平面分成幾個區域?輸入 輸入資料的第一行是乙個正整數t 1 t 10000 表示測試資料的數量。然後是t組測試資料,每組測試資料只包含乙個正整數n 1 n 10000 輸出 對於每組測試資料,請輸出題目中要求的結果。樣例輸入 樣例輸出 解題思路 本題是道簡單的找規律題...
遞推 數字三角形
input 57 3 88 1 0 2 7 4 4 4 5 2 6 5 output 30 數字三角形,可以說是一道很經典的題了,這道題應該出現在dp的入門題裡,但是在這裡提前介紹也是有原因的,因為遞推中同樣涉及了這個關係式的推導,好了,來仔細研究下這個三角形吧,總之這個三角形很重要,思想和方法一定...
凸多邊形區域劃分為三角形問題
rt 乙個凸多邊形區域,有n條邊,將其劃分為三角形區域,問共有多少種分割方法。1.我們從最簡單情況開始 n 3,f 3 1 2.當n 4,f 4 2 3.n邊時 我們從節點1開始考慮,要想分割成三角形區域,1不能和與它相鄰的點連線,所以1可以連線3,4,n 1 假設1連線i,則分割成的兩個區域分別為...