题面

题意:给你一堆点,求一个最大面积的空凸包,里面没有点.

题解:红书板子,照抄完事,因为题目给的都是整点,所以最后答案一定是.5或者.0结尾,不用对答案多做处理

 #include<bits/stdc++.h>
#define N 55
using namespace std;
struct rec
{
double x,y;
};
rec operator -(rec a,rec b)
{
rec c;
c.x=a.x-b.x;
c.y=a.y-b.y;
return c;
}
double sqr(double a)
{
return a*a;
}
int sign(double a)
{
if (fabs(a) <= 1e-) return ;
return a<?- :;
}
bool operator <(rec a,rec b)
{
return sign(b.y-a.y)> || sign(b.y-a.y)== && sign(b.x-a.x)>;
}
double max(double a,double b)
{
return a>b ?a:b;
}
double length(rec a)
{
return sqrt(sqr(a.x)+sqr(a.y));
}
double cross(rec a,rec b)
{
return a.x*b.y-a.y*b.x;
}
rec dot[N],lis[N];
double opt[N][N];
int seq[N],n,len;
double ans;
bool Compare(rec a,rec b)
{
int temp=sign(cross(a,b));
if (temp!=) return temp>;
temp=sign(length(b)-length(a));
return temp>;
}
void solve(int vv)
{
int t,i,j,_len;
for (i=len=;i<n;i++)
if (dot[vv]<dot[i]) lis[len++]=dot[i]-dot[vv];
for (int i=;i<len;i++)
for (int j=;j<len;j++)
opt[i][j]=;
sort(lis,lis+len,Compare);
double v;
for (t=;t<len;t++)
{
_len=;
for (i=t-;i>= && sign(cross(lis[t],lis[i])) == ;i--);
while (i>=)
{
v=cross(lis[i],lis[t])/;
seq[_len++]=i;
for (j=i-; j>= && sign(cross(lis[i]-lis[t], lis[j]-lis[t])) > ;j--);
if (j>=) v+=opt[i][j];
ans=max(ans,v);
opt[t][i]=v;
i=j;
}
for (i = _len-;i>=;i--)
opt[t][seq[i]]=max(opt[t][seq[i]],opt[t][seq[i+]]);
}
}
int T;
int main()
{
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
for (int i=;i<n;i++) scanf("%lf%lf",&dot[i].x,&dot[i].y);
ans=;
for (int i=;i<n;i++) solve(i);
printf("%.1lf\n",ans);
}
return ;
}

2017ACM/ICPC亚洲区沈阳站 C Hdu-6219 Empty Convex Polygons 计算几何 最大空凸包的更多相关文章

  1. HDU 6227.Rabbits-规律 (2017ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学))

    Rabbits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total S ...

  2. HDU 6225.Little Boxes-大数加法 (2017ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学))

    整理代码... Little Boxes Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/O ...

  3. 2017ACM/ICPC亚洲区沈阳站(部分解题报告)

    HDU 6225 Little Boxes 题意 计算四个整数的和 解题思路 使用Java大整数 import java.math.BigInteger; import java.util.Scann ...

  4. 2017ACM/ICPC亚洲区沈阳站-重现赛

    HDU 6222 Heron and His Triangle 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6222 思路: 打表找规律+大数运算 首先我 ...

  5. 2017ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)

    Little Boxes Problem Description Little boxes on the hillside.Little boxes made of ticky-tacky.Littl ...

  6. hdu 6219 Empty Convex Polygons (凸包)

    给你n个点,求面积最大的凸多边形,使得这个凸多边形没有内点. 考虑求凸包的graham算法,需要找到左下角的点,再进行极角排序后按顺序扫点,所以先枚举左下角的点. 这个过程中,如果遇到内点,就需要把这 ...

  7. HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  8. HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)

    Counting Cliques Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  9. HDU 5948 Thickest Burger 【模拟】 (2016ACM/ICPC亚洲区沈阳站)

    Thickest Burger Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

随机推荐

  1. JAVA可能问的几个面试题问题及问题的标准答案

    问题一:你希望工作环境是怎样的? 标准答案:我对环境没有苛求,我会努力适应环境的. 注:此问题是在测试你的求职心态,是以自己为中心还是以工作为中心. 问题二:你觉得自己有哪些缺点? 标准答案:说一些对 ...

  2. 图像局部显著性—点特征(SURF)

    1999年的SIFT(ICCV 1999,并改进发表于IJCV 2004,本文描述):参考描述:图像特征点描述. 参考原文:SURF特征提取分析 本文有大量删除,如有疑义,请参考原文. SURF对SI ...

  3. ROS和OpenCV的对接cv_bridge

    做一个诚实的ROS教程搬运工............................. 官网链接:http://wiki.ros.org/cv_bridge 一.Package Summary Rel ...

  4. VS2013配置编译Caffe-Win10_X64

    原文链接:http://blog.csdn.net/joshua_1988/article/details/45036993 有少量修改................ 2014年4月的时候自己在公司 ...

  5. OAuth网络协议

    一.应用场景 为了理解OAuth的适用场合,让我举一个假设的例子. 有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来.用户为了使用该服务,必须让"云冲 ...

  6. json-lib与Jackson的区别和用法分析

    一.Jackson概述 1.jackson包和版本 Jackson fasterxml和codehaus的区别: 他们是Jackson的两大分支.也是两个版本的不同包名.Jackson从2.0开始改用 ...

  7. TensorFlow学习笔记----例子(2)

    使用TensorFlow中的梯度下降法构建线性学习模型的使用示例:(来源:https://morvanzhou.github.io/tutorials/machine-learning/tensorf ...

  8. 洛谷P1443 马的遍历【BFS】

    题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...

  9. [51Nod 1301] 集合异或和 (dp)

    传送门 Solution 一道比较好的dp题 想了半天组合数QAQ 首先要知道的是 A<B一定是B有一位是1且A的这位是0且前面都相等 那么肯定是要枚举这一位在哪里然后求出方案数 方案数考虑类似 ...

  10. Apache2.4更改默认根目录并配置虚拟域名

    软件环境: 1.virtualbox中安装Ubuntu 16.04-server 2.window7下安装Xshell5 以上安装好后, 1.设置virtualbox网络为桥接网卡,启动Ubuntu. ...