项目编号:bzoj-1069

项目等级:Safe

项目描述:

  戳这里

特殊收容措施:

  求凸包后在凸包上旋转卡壳。然而复杂度要求较低,故可直接枚举四边形的一条对角线,另两个顶点在凸包上随这条对角线的移动具有单调性,所以总复杂度O(n2)。

附录:

 #include <bits/stdc++.h>
#define range(i,c,o) for(register int i=(c);i<(o);++i)
#define dange(i,c,o) for(register int i=(c);i>(o);--i)
using namespace std; static const double eps=1e-; typedef pair<double,double> POINT;
#define x first
#define y second inline POINT operator+(const POINT&P,const POINT&Q)
{
return make_pair(P.x+Q.x,P.y+Q.y);
} inline POINT operator-(const POINT&P,const POINT&Q)
{
return make_pair(P.x-Q.x,P.y-Q.y);
} inline double dis(const POINT&P,const POINT&Q)
{
return sqrt(pow(P.x-Q.x,)+pow(P.y-Q.y,));
} inline double cross(const POINT&P,const POINT&Q)
{
return P.x*Q.y-P.y*Q.x;
} inline double area(
const POINT&O,const POINT&P,const POINT&Q
)
{
return 0.5*cross(P-O,Q-O);
} // 1 stand for LEFT and -1 stand for RIGHT
inline int turn(
const POINT&O,const POINT&P,const POINT&Q
)
{
double duct=area(O,P,Q);
return fabs(duct)<eps?:(duct>?:-);
} POINT P[];
inline bool cmp(const POINT&A,const POINT&B)
{
int dir=turn(P[],A,B);
return dir?dir>:dis(P[],A)>dis(P[],B);
} static int N,cnt=; inline int next(const int&x) {return x+==cnt?:x+;}
inline int&move(int&x) {return ++x==cnt?x=:x;} int main()
{
scanf("%d",&N);
range(i,,N) scanf("%lf%lf",&P[i].x,&P[i].y);
range(i,,N)
{
if(P[i].y==P[].y?P[i].x<P[].x:P[i].y<P[].y)
{
swap(P[i],P[]);
}
}
sort(P+,P+N,cmp);
range(i,,N)
{
for(;cnt>&&turn(P[cnt-],P[cnt-],P[i])<;--cnt);
P[cnt++]=P[i];
}
double ans=;
range(i,,cnt)
{
int L=next(i),j=next(L),R=next(j);
for(;next(j)!=i;move(j))
{
for(;next(L)!=j&&
area(P[i],P[next(L)],P[j])+eps>
area(P[i],P[ L ],P[j]);move(L)
);
for(j==R?move(R):
;next(R)!=i&&
area(P[j],P[next(R)],P[i])+eps>
area(P[j],P[ R ],P[i]);move(R)
);
ans=max(ans,area(P[i],P[L],P[j])+area(P[j],P[R],P[i]));
}
}
return printf("%.3lf\n",ans),;
}

SCP-bzoj-1069的更多相关文章

  1. BZOJ 1069 Luogu P4166 最大土地面积 (凸包)

    题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=1069 (luogu)https://www.luogu.org/probl ...

  2. 【BZOJ 1069】 凸包+旋转卡壳

    1069: [SCOI2007]最大土地面积 Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第 ...

  3. bzoj 1069 [SCOI2007]最大土地面积(旋转卡壳)

    1069: [SCOI2007]最大土地面积 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2277  Solved: 853[Submit][Stat ...

  4. BZOJ 1069 最大土地面积

    Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第1行一个正整数N,接下来N行,每行2个数x,y ...

  5. BZOJ 1069: [SCOI2007]最大土地面积 [旋转卡壳]

    1069: [SCOI2007]最大土地面积 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 2978  Solved: 1173[Submit][Sta ...

  6. ●BZOJ 1069 [SCOI2007]最大土地面积

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1069 题解: 计算几何,凸包,旋转卡壳 其实和这个题差不多,POJ 2079 Triangl ...

  7. bzoj 1069

    最开始想到的是枚举3个点,另一个点用卡壳的思想,但实际上可以只枚举两个点(对角线上的两个点),其余两个点用卡壳. /****************************************** ...

  8. bzoj 1069 [SCOI2007]最大土地面积——旋转卡壳

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1069 发现 n 可以 n^2 .所以枚举对角线,分开的两部分三角形就可以旋转卡壳了. 注意坐 ...

  9. BZOJ 1069: [SCOI2007]最大土地面积(旋转卡壳)

    题目链接~ 1069: [SCOI2007]最大土地面积 思路很简单,极角排序求完凸包后,在凸包上枚举对角线,然后两边分别来两个点旋转卡壳一下,搞定! 不过计算几何的题目就是这样,程序中间的处理还是比 ...

  10. 【BZOJ 1069】【SCOI 2007】最大土地面积 凸包+旋转卡壳

    因为凸壳上对踵点的单调性所以旋转卡壳线性绕一圈就可以啦啦啦--- 先求凸包,然后旋转卡壳记录$sum1$和$sum2$,最后统计答案就可以了 #include<cmath> #includ ...

随机推荐

  1. http_load(基于linux平台的一种性能测试工具)

    http_load  是运行在linux操作系统上的命令行测试工具, 用来对网站做压力测试.http_load以并行复用的方式运行,用以测试web服务器的吞吐量和负载.但是它不同于大多数压力测试工具, ...

  2. php7和MongoDB插入并读取数据

    php7和MongoDB插入并读取数据 代码如下: <?php $manager = new MongoDB\Driver\Manager("mongodb://localhost:2 ...

  3. php7结合mongoDB插入数据

    php7结合mongoDB插入数据 代码如下: <?php $bulk = new MongoDB\Driver\BulkWrite;//1 $document = ['_id' => n ...

  4. 神秘的java Https

    说起网络安全,最基本的策略就是走https.https仿佛一条神秘通道,有了它,万事无忧. 究竟什么是https?如何实现https? 本文将揭开https的神秘面纱. WTF https 万事皆有源 ...

  5. Linux awk 命令 说明

    一. AWK 说明 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是l ...

  6. 模拟用户登录含注册——python第8天

    print('欢迎登录尚雅梦想python学习系统'.center(30)) print('******' * 8) flag = True while flag: order = input(''' ...

  7. c# 自定义控件之 ComboBox

    winform 自带的 combobox 无法支持根据输入文本匹配列表中的项目,需要使用自定义控件. public class MyCombobox : ComboBox { //初始化数据项 pri ...

  8. document.location window.location

    document.location 和 window.location 取url的值的时候可以通用,但是 document是window的属性,所以不能直接用document.location =ur ...

  9. element UI的使用

    npm install --save element-ui main.js里面添加 import ElementUI from 'element-ui' import 'element-ui/lib/ ...

  10. Mac 电脑如何卸载 重装node

    由于在日常开发中,部分node版本不支持,因此,我们需要对已安装的node进行卸载重装,步骤如下: 一.在终端依次输入以下命令   sudo npm uninstall npm -g   sudo r ...