尋找三角形

2021-08-10 12:05:01 字數 1139 閱讀 2723

三維空間中有n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用r、g、b表示。

現在要找出三個點,並組成乙個三角形,使得三角形的面積最大。三角形必須滿足:三個點顏色要麼全部相同,要麼全部不同。

輸入描述:

首先輸入乙個正整數n(n<50)三維座標系內的點的個數。接下來n行,每一行輸入 c x y z,c為r、g、b其中乙個。x,y,z,為座標。(座標0-999的整數)

輸出描述:

最大的三角形面積,保留5位小數。

樣例輸入:

5

r 0 0 0

r 0 4 0

r 0 0 3

g 92 14 7

g 12 16 8

樣例輸出:

6.00000
暴力列舉,判斷滿足條件的三角形,然後計算機三角形面積進行比較。三角形的公式可以使用叉積公式或海**式。

本題因為是空間的點,使用叉積公式,即使用向量乘積計算比海**式方便很多。

海**式:s=√[p(p-a)(p-b)(p-c)]其中p=(a+b+c)/2。

叉積公式:a = a1i + a2j + a3k = [a1, a2, a3]

b = b1i + b2j + b3k = [b1, b2, b3]

s=|a × b| /2= √(a2b3 − a3b2)^2+(a3b1 − a1b3)^2+(a1b2 − a2b1)^2 /2向量的叉積為以a、b為邊平行四邊形的面積,三角形即為一半。

1)輸入

2)迴圈列舉

3)判斷條件,成立計算面積

4)比較得出最大面積值

5)按格式輸出

#include using namespace std;

#define mul(x) ((x)*(x))

char type[55];

double x[55],y[55],z[55];

int main()

} }printf("%.5lf\n",ans);

return 0;

}

尋找三角形

三維空間中有n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用 r g b 表示。現在要找出三個點,並組成乙個三角形,使得這個三角形的面積最大。但是三角形必須滿足 三個點的顏色要麼全部相同,要麼全部不同。輸入描述 首先輸入乙個正整數n三維座標系內的點的個數.n 50 接下來n行,每...

尋找三角形

尋找三角形 時間限制 1秒 空間限制 32768k 三維空間中有 n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用 r g b 表示。現在要找出三個點,並組成乙個三角形,使得這個三角形的面積最大。但是三角形必須滿足 三個點的顏色要麼全部相同,要麼全部不同。輸入描述 首先輸入乙個正...

程式設計題 尋找三角形

三維空間中有n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用 r g b 表示。現在要找出三個點,並組成乙個三角形,使得這個三角形的面積最大。但是三角形必須滿足 三個點的顏色要麼全部相同,要麼全部不同。輸入描述 首先輸入乙個正整數n三維座標系內的點的個數.n 50 接下來n行,每...