三角形相關演算法

2021-10-23 13:45:50 字數 1193 閱讀 7959

1、陣列中能組成三角形的數目

int

********count

(vector<

int>

&s)int sum =0;

sort

(s.begin()

, s.

end())

;for

(int i =

2; i < isize; i++)}

}return sum;

}

2、陣列三角形如下圖示出了乙個數字三角形。 請編乙個程式計算從頂至底的某處的一條路徑,使該路徑所經過的數字的總和最大。

●每一步可沿左斜線向下或右斜線向下走;

●1<三角形行數≤100;

●三角形中的數字為整數0,1,…99;

分析:這裡不妨採取遞推的想法,從底部開始記錄,運用動態規劃的想法(追求子問題的最優解),逐步向上更新數字三角形的值,最終的答案就是塔頂的值:遞推關係式,也是dp方程:num[i][j] += max(num[i+1][j], num[i+1][j+1]

我們可以先從特殊情況來考慮本題,這道題最大的變數就在於數塔的層數,那麼這就是突破口:

1、假設數塔只有一層,答案很顯然

2、假設數塔有兩層,那麼就將第二層大一點的值增加到第一層,求得答案

3、假設數塔有三層,按照**的思路,先更新倒數第二行,我們乙個值乙個值的更新,每乙個值結合下面一層都會有自己的兩層小數塔.

#include

#include

#include

#include

//包含max()函式的標頭檔案

using namespace std;

int num[

101]

[101];

//記錄數塔

intmain()

}for

(int i=n-

1; i>=

1; i--)}

printf

("%d\n"

, num[1]

[1])

;}return0;

}

三角形相關

面積公式 1.s 1 2absinc 1 2acsinb 1 2bcsina 2.s 根號下p p a p b p c 其中p a b c 2 3.s abc 4r r為外接圓的半徑 4.s 1 2 x1 y2 x2 y3 x3 y1 x2 y1 x3 y2 x1 y3 其中三個頂點的座標分別為a ...

三角形相關重點

acm模版 設三角形的三條邊為a,b,c,且不妨假設a b c.三角形面積可以根據海 式求得 s sqrt p p a p b p c p a b c 2 費馬點 該點到三角形三個頂點的距離之和最小。有個有趣的結論 若三角形的三個內角均小於120度,那麼該點連線三個頂點形成的三個角均為120度 若三...

數字三角形相關解法

解法一 遞迴 max sum i,j 用來計算d i j 到底邊最長路徑之和。用乙個陣列maxsum i j 儲存d i j 到底邊最長路徑之和,避免重複計算,初始值是 1。根據遞迴的原理,遞迴的條件是 maxsum i j max max sum i 1,j max sum i 1,j 1 d i...