B题是一个计算几何的题,虽然以前看过计算几何的ppt,但一直都没有写过;
昨晚比赛的时候本来想写的,但是怕不熟练浪费时间,太可惜了!
其实没必要选出一个最大的矩形;
以矩形的一条对角线为轴,向上或者向下找到最大的三角形的面积就行了,
可以看看官方的题解,讲的挺不错的!
代码:
1 #include2 #define eps 0.00000001 3 using namespace std; 4 int a[305][2]; 5 double ccw(int x,int y,int z) 6 { 7 return ((double)(a[y][0]-a[x][0])*(a[z][1]-a[x][1])-(a[y][1]-a[x][1])*(a[z][0]-a[x][0]))*0.5; 8 } 9 double check(double x,double y)10 {11 if(y-x>=eps)12 return y;13 else return x;14 }15 int main()16 {17 int n;18 double ans=0;19 scanf("%d",&n);20 for(int i=0;i =0&&min>=0)35 ans=check(ans,max+min);36 }37 printf("%lf\n",ans);38 return 0;39 }