三維空間中有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行,每...