程式設計題 尋找三角形

2021-07-31 12:30:34 字數 1245 閱讀 5734

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