三維空間中有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
這題最重要的是已知空間中的三個點,求這三個點構成三角形的面積
我們可以先求出這個三角形的三條邊a,b,c,再用海**式求面積
s=sqrt(p* (p-a) * (p-b) * (p-c)) 其中p=(a+b+c) / 2
知道這些以後,我們只需要暴力求最大值即可
#include"iostream"
#include"math.h"
#include"stdlib.h"
#include
#include"stdio.h"
using
namespace
std;
struct noode
;double dis (noode a,noode b)
int main()
for(int i=0;ifor(int j=0;jif(i==j) continue;
for(int k=0;kif(k==i||k==j) continue;
if((ai[i].coolor==ai[j].coolor&&ai[j].coolor==ai[k].coolor)||(ai[i].coolor!=ai[j].coolor&&ai[j].coolor!=ai[k].coolor&&ai[i].coolor!=ai[k].coolor))}}
}printf("%.5lf\n",mmax);
return
0;}
程式設計題 尋找三角形
三維空間中有n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用 r g b 表示。現在要找出三個點,並組成乙個三角形,使得這個三角形的面積最大。但是三角形必須滿足 三個點的顏色要麼全部相同,要麼全部不同。輸入描述 首先輸入乙個正整數n三維座標系內的點的個數.n 50 接下來n行,每...
程式設計題 尋找三角形
三維空間中有n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用 r g b 表示。現在要找出三個點,並組成乙個三角形,使得這個三角形的面積最大。但是三角形必須滿足 三個點的顏色要麼全部相同,要麼全部不同。輸入描述 首先輸入乙個正整數n三維座標系內的點的個數.n 50 接下來n行,每...
尋找三角形
三維空間中有n個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用 r g b 表示。現在要找出三個點,並組成乙個三角形,使得這個三角形的面積最大。但是三角形必須滿足 三個點的顏色要麼全部相同,要麼全部不同。輸入描述 首先輸入乙個正整數n三維座標系內的點的個數.n 50 接下來n行,每...