題目:已知有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...
2017百度校園招聘程式設計題
題目大概為輸入n個敏感詞彙和乙個文字串,在文字串中出現敏感詞彙的地方用 替代掉,輸出替換後的文字串。思路 直接kmp匹配出現敏感詞的地方,用乙個中間陣列標記。唯一的陷阱就是不區分大小寫,所以用kmp判斷兩個字元相等的注意下 替換敏感詞彙 include include include include...
百度2015校園招聘筆試題
一 簡答題 30分 1.程序和執行緒的聯絡與區別。2.簡述資料庫的儲存過程及其優點。3.static全域性變數與普通的全域性變數有什麼區別?static區域性變數和普通的區別?static函式和普通函式的區別?二 演算法與程式設計題 45分 1 請編碼實現memcpy函式 void memcpy v...