题目有误!!!
查看原帖
题目有误!!!
1213719
Algorithm_king楼主2025/1/25 12:41

既然题目说了正方形可以任意摆放,举个很简单的例子,这个样例:

1

1 3 3 2

3

根据正弦定理求三角形面积最值的知识:当且仅当围成的三角形是等腰三角形时面积最大,因为都得减去一个定值面积(既半个正方形),因此鄙人认为根本不是题解所讲的正方形摆放一定得平行坐标轴,而是围成的大三角形必须是等腰三角形,代码如下:

#include<bits/stdc++.h>
using namespace std;
int n;
struct point{
	double x,y;
}a,b;
double d[15];
int main()
{
	while(cin>>n&&n)
		{
			double sum=0.0,ss=0.0;
			cin>>a.x>>a.y>>b.x>>b.y;
			for(int i=1;i<=n;i++)
				{
					cin>>d[i];
					sum+=d[i];
					ss+=d[i]*d[i]/2;
				}
			sum*=sqrt(2);
			double t=fabs(atan(a.y/a.x)-atan(b.y/b.x))/2;
			double s=sum/(2*tan(t));
			printf("%.3lf\n",s*sum/2-ss);
		}
	return 0;
}```
运行上述样例的结果也比题解大0.03左右
2025/1/25 12:41
加载中...