farmer john 想要給他的奶牛們建造乙個三角形牧場。
有 n(3≤n≤100)個柵欄柱子分別位於農場的二維平面上不同的點 (x1,y1)…(xn,yn)。他可以選擇其中三個點組成三角形牧場,只要三角形有一條邊與 x 軸平行,且有另一條邊與 y 軸平行。
farmer john 可以圍成的牧場的最大面積是多少?保證存在至少乙個合法的三角形牧場。
輸入格式(檔名:********s.in):
輸入的第一行包含整數 n。以下 n 行每行包含兩個整數 xi 和 yi,均在範圍 −104…104 之內,描述乙個柵欄柱子的位置。
輸出格式(檔名:********s.out):
由於面積不一定為整數,輸出柵欄柱子可以圍成的合法三角形的最大面積的兩倍。
1,我自己不是很擅長做這種幾何型別題目,所以最先想到的是要把給出座標能夠組成的三角形全部都求出來,再乙個乙個遍歷是否能夠組成題目中規定的三角形,但是由於**水平不夠,只好另外想辦法。
2,我現在用的方法是遍歷給出座標圍成最大三角形方法,python3**如下
for i in
range
(n):
maxx =
0 maxy =
0#這裡先判斷再縱座標相同的情況下他的平行於x軸的一條邊的最大值
for j in
range
(n):
if i != j:
if pointlist[i][1
]== pointlist[j][1
]:# y軸相等的時候
currentmaxx =
abs(pointlist[i][0
]- pointlist[j][0
])maxx =
max(maxx, currentmaxx)
#這裡和上面類似,判斷x軸相同時與y軸平行邊最大值。
for k in
range
(n):
if i != k:
if pointlist[i][0
]== pointlist[k][0
]:currentmaxy =
abs(pointlist[i][1
]- pointlist[k][1
])maxy =
max(maxy, currentmaxy)
求出了從乙個點出發向x,y軸延伸的最大長度,就可以通過maxx * maxy / 2算出三角形的面積,把這些面積放入列表最後輸出列表中最大元素即可。
file_in =
open
('********s.in'
)n =
int(file_in.readline())
pointlist =
for i in
range
(n):
line =
[int
(i)for i in file_in.readline(
).split()]
print
(pointlist)
# possible******** = list(combinations(pointlist,3))
# print(possible********)
eachmax =
# 先找x軸平行最大的長的直線
for i in
range
(n):
maxx =
0 maxy =
0for j in
range
(n):
if i != j:
# print(i,j)
if pointlist[i][1
]== pointlist[j][1
]:# y軸相等的時候
# print('====')
# print(i,j)
currentmaxx =
abs(pointlist[i][0
]- pointlist[j][0
])maxx =
max(maxx, currentmaxx)
for k in
range
(n):
if i != k:
if pointlist[i][0
]== pointlist[k][0
]:currentmaxy =
abs(pointlist[i][1
]- pointlist[k][1
])maxy =
max(maxy, currentmaxy)2)
file_out =
open
('********s.out'
,'w'
)file_out.write(
str(
int(
max(eachmax)*2
)))
大家可以看到一些注釋掉的**就是之前的想法,也就是用排列組合來做。 二月一共多少天
年 月 日 的計算方法是由古代羅馬教皇儒咯 愷撒創立的。他在修改太陽歷時規定每年有12個月,單月31日,雙月30日。這樣一年有366日,要比一年應有的365日多一日,因此必須從哪乙個月裡扣去一日才合適。當時判處死刑的犯人都是在二月份執行處死,人們認為二月份是不吉利的月份,就從二月份中減去了一日,這樣...
2011 2, 二月彈指一揮間
1 開始發奮研究國學了。讓自己打下國學的根基。四書五經已經全部的拿到手了,還有加上從前的好多。從國學上面來說,已經完全夠了。剩下的就是在這一年中該如何把手頭的這麼多的國學書籍學習 總結,研究透徹。讀過如此多的國學書籍後,那麼自然的就會解決很多的人生問題,比如立志 做人等等。有了國學的根基後,再去做很...
每天學習一點點(2023年二月)
2010 2 8號 星期一 1.決定記錄下每天學到的東西和感悟 3.看到乙個笑話 你屬什麼?我屬 於你。2010 2 9號 星期二2.如何更改vs2008的類和頁面的模板 1 找到c program files microsoft visual studio 9.0 common7 ide item...