题面

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

题解:红书板子,照抄完事,因为题目给的都是整点,所以最后答案一定是.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. linux 新添加的硬盘格式化并挂载到目录下

    需求: 新增加一块硬盘sdb,将sdb分区,只分一个区,格式化,挂载到目录/ssd下. 1.  查看现在已有的分区状态 # df –l 图中显示,没有看到sdb硬盘 2.  查看服务器安装的硬盘状态( ...

  2. Java数据的基本类型

    整数类型: byte:8位(1个字节) eg:byte x=2,y: 错误实例:byte b:b=b+3:   其中b=b+3是错误的,应该是b=(byte)(b+3)强制转换: short:16位( ...

  3. selenium有多个窗口时操作某个窗口的内容

    这个页面点击html/css后会弹出一个新的窗口,此时要操作新的窗口的内容,使用switchTo 跳转代码 driver.get("https://www.imooc.com"); ...

  4. 在 Laravel 应用中使用 pjax 进行页面加速

    说明# PHPHub 使用 pjax 来加速网页的加载, 这篇文章是在开发完此功能后做的笔记. 什么是 Pjax# .--. / \ ## a a ( '._) |'-- | _.\___/_ ___ ...

  5. https证书安装无效的主要原因

    https证书的作用是为了确认服务端身份,但网络上充满了无效的证书,浏览器对使用无效证书的访问,给出危险.不安全警告,将是否选择继续访问由用户选择,而大多数用户是无法区分这是配置还是真的存在安全问题. ...

  6. 移动端出现弹出层body滚动

    $("#box").on("click",function(e){ e.stopPropagation(); e.preventDefault(); $(&qu ...

  7. html第四节课

    css CSS(Cascading Style Sheet,叠层样式表),作用是美化HTML网页. /*注释区域*/    此为注释语法 一.样式表 (一)样式表的分类 1.内联样式表 和HTML联合 ...

  8. QBXT春季培训酱油记

    Day-1: 下午回家收拾东西,明天去JN,先通知一下在JN的lll dalao明天去见他,然而手办到了,心情大好啊有没有,有没有! 晚上单曲循环<初音未来的消失>,睡觉的时候哭得稀里哗啦 ...

  9. eclipse导入Javaweb文件出错解决

    在项目名上右击打开properties,如图在箭头指的位置可以看出有个unbound表示导入的资源库出现 异常,需要手动导入,1.点击Server Library{Apache Tomcat v9.0 ...

  10. [Ynoi2011]D1T1

    题目大意: 给定一个序列$a_1,a_2,\dots,a_n$,进行$m$次操作,每次操作如下: 1. 给定$x,y,z$,对所有下标为$y,y+x,y+2x,\dots$的元素加上$z$(保证$y\ ...