码迷,mamicode.com
首页 > 其他好文 > 详细

Maximal Area Quadrilateral CodeForces - 340B || 三点坐标求三角形面积

时间:2017-09-30 13:12:39      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:http   print   printf   div   style   article   span   amp   面积   

Maximal Area Quadrilateral CodeForces - 340B

三点坐标求三角形面积(可以带正负,表示向量/点的不同相对位置):

http://www.cnblogs.com/xiexinxinlove/p/3708147.html

https://jingyan.baidu.com/article/a65957f49596ab24e67f9be7.html

枚举对角线,求出在对角线两侧取任意点能得到的三角形的面积,然后对于每条对角线,最大值就是两侧面积最大值之和。

 1 #include<cstdio>
 2 #include<algorithm>
 3 using std::max;
 4 #include<cmath>
 5 using std::abs;
 6 #define inf 20000000.0
 7 int n;
 8 double x[310],y[310],a[2],anss,mj1;
 9 double mj(double x1,double y1,double x2,double y2,double x3,double y3)
10 {
11     return ((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))/2;
12 }
13 int main()
14 {
15     int i,j,k;
16     scanf("%d",&n);
17     for(i=1;i<=n;i++)
18         scanf("%lf%lf",&x[i],&y[i]);
19     for(i=1;i<=n;i++)
20         for(j=i+1;j<=n;j++)
21         {
22             a[0]=a[1]=-inf;
23             for(k=1;k<=n;k++)
24             {
25                 if(k==i||k==j)    continue;
26                 mj1=mj(x[i],y[i],x[j],y[j],x[k],y[k]);
27                 a[mj1>0]=max(a[mj1>0],abs(mj1));
28             }
29             anss=max(anss,a[0]+a[1]);
30         }
31     printf("%lf",anss);
32     return 0;
33 }

Maximal Area Quadrilateral CodeForces - 340B || 三点坐标求三角形面积

标签:http   print   printf   div   style   article   span   amp   面积   

原文地址:http://www.cnblogs.com/hehe54321/p/cf-340b.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!