切換
舊版
前往
大廳
主題

ZeroJudge - b288: 夏季大三角 解題心得

Not In My Back Yard | 2019-06-11 13:23:55 | 巴幣 0 | 人氣 337

題目連結:


題目大意:
給定一正整數 N (N ≦ 1, 000),代表有 N 個點,每個點佔一列輸入。

接著的 N 列,每列給定兩浮點數,代表此點在標準座標平面上的座標。

求從這 N 個點挑出三點可形成最大的三角形之面積為何?



範例輸入:
5
0 0
1 6
2 3
1.5 1.5
5 0


範例輸出:
15.000000


解題思維:
本題暴力硬 A 是可以過的。但是我們也可以採取幾何學的看法——凸包。

根據凸包的定義,即最小的、可包覆所有點的凸多邊形。因此,本題所要求最大的三角形之三頂點必定皆在凸包的頂點(邊)上。因為不在凸包上的話,就可以往外延展碰到凸包,進而形成更大的三角形。

因此,只要找出這 N 個點的凸包,並窮舉其頂點的挑法即可找出最大的三角形。(凸包的找法可以參考之前的文章

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作