題目:已知有n個點分布在三維空間,且各個點都有三種顏色中的一種,即』r』,』g』,』b』,每次輸入格式為顏色和座標,要求計算組成的最大三角形的面積,另外該三角形需要滿足的條件是三個點要麼顏色完全相同,要麼完全不同。
輸入示例:
5 r 0 0 0
g 92 14 7
r 0 4 0
r 0 0 3
g 12 16 8
輸出結果:
6.00000
# coding=utf-8
import sys
import math
# 計算兩點間距離
defdistance
(a, b):
tmp = (a[1] - b[1])**2 + (a[2] - b[2])**2 + (a[3] - b[3])**2
return math.pow(tmp, 0.5)
# 計算三點構成的面積
defcountarea
(a, b, c):
line1 = distance(a, b)
line2 = distance(a, c)
line3 = distance(b, c)
p = (line1 + line2 + line3) / 2
return math.pow(p * (p - line1) * (p - line2) * (p - line3), 0.5)
defmaxarea
(data):
areas =
for i in range(len(data)-2):
for j in range(i+1,len(data)-1):
for k in range(j+1,len(data)):
areas.sort(key=lambda x:x[0],reverse=true)
# print(areas)
for x in areas:
if( ( x[1] == x[2] == x[3] ) or ( x[1] != x[2] and x[1] != x[3] and x[2] != x[3] ) ):
return x[0]
if __name__ == "__main__":
# 讀取第一行的n
n = int(sys.stdin.readline().strip())
data =
for i in range(n):
# 讀取每一行
line = sys.stdin.readline().strip().split()
for i in range(1, 4):
line[i] = int(line[i])
# print(data)
# data = [['r', 0, 0, 0],
# ['g', 92, 14, 7],
# ['r', 0, 4, 0],
# ['r', 0, 0, 3],
# ['g', 12, 16, 8]
# ]
# n = len(data)
# data.sort(key=lambda x:x[0])
if(n == 3):
print("%.5f"%countarea(data[0], data[1], data[2]))
else:
maxa = maxarea(data)
print("%.5f"%maxa)
百度2017春季招聘筆試
題目 已知有n個點分布在三維空間,且各個點都有三種顏色中的一種,即 r g b 每次輸入格式為顏色和座標,要求計算組成的最大三角形的面積 另外該三角形需要滿足的條件是三個點要麼顏色完全相同,要麼完全不同。輸入示例 5 r 0 0 0 g 92 14 7 r 0 4 0 r 0 0 3 g 12 16...
百度2015校園招聘筆試題
一 簡答題 30分 1.程序和執行緒的聯絡與區別。2.簡述資料庫的儲存過程及其優點。3.static全域性變數與普通的全域性變數有什麼區別?static區域性變數和普通的區別?static函式和普通函式的區別?二 演算法與程式設計題 45分 1 請編碼實現memcpy函式 void memcpy v...
百度招聘筆試考試題
1 此題10分 對任意 輸入的正整數n,編寫c程式求n 的尾部連續0的個數,並指出計算複雜度。如 18!6402373705728000,尾部連續0的個數是3。不 用考慮數值超出計算機整數界限的問題 2 此題10分 編寫乙個c語言函式,要求輸入乙個url,輸出該url是首頁 目錄 頁或者其他url ...