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
  • 相关阅读:
    C# 中文件路径的操作
    字符串模式匹配KMP算法
    SLG游戏关卡设计
    android 源码包结构分析
    NIO的理解
    显示单位
    多线程时控制并发数据库操作的思路
    使用异常机制的建议
    合理的使用索引。《Map的使用》
    android源码的下载方法Windows
  • 原文地址:https://www.cnblogs.com/yours1103/p/3293170.html
Copyright © 2011-2022 走看看