项目编号: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. Castle动态代理拦截

    比如现在有一个方法,进行积分奖励 PointAdd 在不改变原来方法的基础上,增加积分奖励的日志 using Castle.DynamicProxy; public class AuditTraceI ...

  2. php中class类文件引入方法汇总

    在项目中  总是会用到类文件引入的操作,在此简单总结下: 方法一: 使用  include,require,include_once,require_once. 其中:*_once  once意为曾经 ...

  3. 如何在vue里面调用高德地图

    1.修改webpac.base.conf.js文件 与module同一级添加 externals: { 'AMap': 'AMap', 'AMapUI': 'AMapUI' }配置. 然后在index ...

  4. TList TObjectList的区别和使用

    所在的单元 TList(Classes.pas) TObjectList(Contnrs.pas) TObjectList对象的创建方法有一个参数: constructor TObjectList.C ...

  5. PHP将mysql数据表转换为excel文件

    测试代码: <?php $DB_Server = "127.0.0.1"; $DB_Username = "root"; $DB_Password = & ...

  6. python深浅拷贝的理解和区分

    import copy a1 = ['s1','s2','s3'] #可变数据类型 a = [1,2,a1] b = a a1.append('s4') #浅拷贝 c = copy.copy(a) # ...

  7. 洛谷P2387 [NOI2014]魔法森林(LCT)

    魔法森林 题目传送门 解题思路 把每条路按照\(a\)的值从小到大排序.然后用LCT按照b的值维护最小生成树,将边按照顺序放入.如果\(1\)到\(n\)有了一条路径,就更新最小答案.这个过程就相当于 ...

  8. QTP使用Smtp协议发送邮件

    NameSpace = "http://schemas.microsoft.com/cdo/configuration/" Set Email = CreateObject(&qu ...

  9. oracle使用时间戳

    TO_DATE ( '2019-12-05 00:00:00', 'yyyy-mm-dd hh24:mi:ss' ) AS UPDATE_DATE,

  10. Spring Boot 支持 HTTPS 如此简单,So easy!

    这里讲的是 Spring Boot 内嵌式 Server 打 jar 包运行的方式,打 WAR 包部署的就不存在要 Spring Boot 支持 HTTPS 了,需要去外部对应的 Server 配置. ...