SP2716题解
题目描述
给定四个边,由这四个边构建四边形,求四边形最大面积。
输出与 相差 就算正确。
思路
海伦的三角形公式 ,其中 ,这里面的 分别为三条边的长。
可是这是三角形而不是四边形啊!
把它变成四边形版不就行了?
可是,四边形有很多种……
例如四条边长度都为 ,它的变化可以是:

还可能是:

那怎么办呢?
其实我们知道,圆内接四边形的面积是在边长固定的情况下面积最大的。
且我们知道圆内接四边形的面积为
其中 。
所以我们只需要套公式就行了。
代码奉上
#include<bits/stdc++.h>
int t;
double a,bc,d,sum,q;//一堆胡乱定义
int main(){
cin>>t;
for(int i=1;i<=t;i++){//t组数据
cin>>a>>b>>c>>d;
sum=(a+b+c+d)/2;//公式中的p
q=sqrt((sum-a)*(sum-b)*(sum-c)*(sum-d));
printf("%.2lf",q);//保留两位小数神器
}
return 0;//愉快地结束了主函数
}
总时间复杂度 ,每次询问 。

浙公网安备 33010602011771号