zoukankan      html  css  js  c++  java
  • Codeforces Round #198 (Div. 2) —— B

    B题是一个计算几何的题,虽然以前看过计算几何的ppt,但一直都没有写过;

    昨晚比赛的时候本来想写的,但是怕不熟练浪费时间,太可惜了!

    其实没必要选出一个最大的矩形;

    以矩形的一条对角线为轴,向上或者向下找到最大的三角形的面积就行了,

    可以看看官方的题解,讲的挺不错的!

    代码:

     1 #include<cstdio>
     2 #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<n;i++)
    21         scanf("%d%d",&a[i][0],&a[i][1]);
    22     for(int i=0;i<n;i++)
    23         for(int j=i+1;j<n;j++)
    24         {
    25             double min=-1,max=-1;
    26             for(int k=0;k<n;k++)
    27                 if(k!=i&&k!=j)
    28                 {
    29                     if(ccw(i,j,k)<0)
    30                         min=check(min,-ccw(i,j,k));
    31                     else
    32                         max=check(max,ccw(i,j,k));
    33                 }
    34             if(max>=0&&min>=0)
    35             ans=check(ans,max+min);
    36         }
    37     printf("%lf
    ",ans);
    38     return 0;
    39 }
    View Code
  • 相关阅读:
    ASP.net AJAX Toolkit —— DynamicPopulateExtender
    查找存储过程修改时间
    Application_Start和Application_End事件执行时间
    制作导航菜单
    multiple backgrounds
    background-size
    background-clip
    background-origin
    文本阴影text-shadow
    嵌入字体@font-face
  • 原文地址:https://www.cnblogs.com/yours1103/p/3293170.html
Copyright © 2011-2022 走看看