1. 程式人生 > >2018 Benelux Algorithm Programming Contest (BAPC 18) J-Janitor Troubles(計算幾何公式)

2018 Benelux Algorithm Programming Contest (BAPC 18) J-Janitor Troubles(計算幾何公式)

思路來源

https://www.cnblogs.com/elpsycongroo/p/6777584.html

題意

給四條邊邊長,保證一定可以構成一個四邊形。

問其構成最大的四邊形的面積。

題解

Bretschneide公式:證明一定是圓內接四邊形

婆羅摩笈多公式(海倫公式的擴充套件):求圓內接四邊形面積

心得

當記結論了吧。

其實部落格來源挺好的,自己要照那麼強推應該也能推出來。

可惜不是高中了哈GG,感覺自己學acm太死板,可又找不到太好的方法。

感覺計算幾何鬼公式還是挺多的。

無差別補題。要銘記fls的話啊。

程式碼

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
using namespace std;
typedef long long ll;
double a[10];
int main(){
    ll t;
    ll i;
    scanf("%lf%lf%lf%lf",a,a+1,a+2,a+3);
    sort(a,a+4);
    double p=(a[1]+a[2]+a[3]+a[0])/2;
    double s=sqrt((p-a[0])*(p-a[1])*(p-a[2])*(p-a[3]));
    printf("%.6lf\n",s);
}