SCP-bzoj-1069
项目编号: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的更多相关文章
- BZOJ 1069 Luogu P4166 最大土地面积 (凸包)
题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=1069 (luogu)https://www.luogu.org/probl ...
- 【BZOJ 1069】 凸包+旋转卡壳
1069: [SCOI2007]最大土地面积 Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第 ...
- bzoj 1069 [SCOI2007]最大土地面积(旋转卡壳)
1069: [SCOI2007]最大土地面积 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2277 Solved: 853[Submit][Stat ...
- BZOJ 1069 最大土地面积
Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第1行一个正整数N,接下来N行,每行2个数x,y ...
- BZOJ 1069: [SCOI2007]最大土地面积 [旋转卡壳]
1069: [SCOI2007]最大土地面积 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2978 Solved: 1173[Submit][Sta ...
- ●BZOJ 1069 [SCOI2007]最大土地面积
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1069 题解: 计算几何,凸包,旋转卡壳 其实和这个题差不多,POJ 2079 Triangl ...
- bzoj 1069
最开始想到的是枚举3个点,另一个点用卡壳的思想,但实际上可以只枚举两个点(对角线上的两个点),其余两个点用卡壳. /****************************************** ...
- bzoj 1069 [SCOI2007]最大土地面积——旋转卡壳
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1069 发现 n 可以 n^2 .所以枚举对角线,分开的两部分三角形就可以旋转卡壳了. 注意坐 ...
- BZOJ 1069: [SCOI2007]最大土地面积(旋转卡壳)
题目链接~ 1069: [SCOI2007]最大土地面积 思路很简单,极角排序求完凸包后,在凸包上枚举对角线,然后两边分别来两个点旋转卡壳一下,搞定! 不过计算几何的题目就是这样,程序中间的处理还是比 ...
- 【BZOJ 1069】【SCOI 2007】最大土地面积 凸包+旋转卡壳
因为凸壳上对踵点的单调性所以旋转卡壳线性绕一圈就可以啦啦啦--- 先求凸包,然后旋转卡壳记录$sum1$和$sum2$,最后统计答案就可以了 #include<cmath> #includ ...
随机推荐
- php sqrt()函数 语法
php sqrt()函数 语法 作用:sqrt()函数的作用是对参数进行求平方根 语法:sqrt(X) 参数: 参数 描述 X 进行求平方根的数字 说明:返回将参数X进行开平方后的结果江苏大理石平台 ...
- paper 158:CNN(卷积神经网络):Dropout Layer
Dropout作用 在hinton的论文Improving neural networks by preventing coadaptation提出的,主要作用就是为了防止模型过拟合.当模型参数较多, ...
- 「LibreOJ β Round」ZQC 的手办
https://loj.ac/problem/504 一类套路题. 首先这个玩意可以两个logn树套树做.... naive地,把区间内的所有数拿出来放进堆里.不断取出. 太多了. 所以开始只保留那初 ...
- [CSP-S模拟测试]:kill(二分答案+贪心)
题目传送门(内部题50) 输入格式 第一行包含四个整数$n,m,s$,表示人数.怪物数及任务交付点的位置.第二行包含$n$个整数$p_1,p_2,...,p_n$.第三行包含$n$个整数$q_1,q_ ...
- JSP 获取访问者真正的IP地址
request.getRemoteAddr(),这种方法在大部分情况下都是有效的,但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了, 如果使用了反向代理软件,用re ...
- SVG开发包, 20 个有用的 SVG 工具,提供更好的图像处理
20 个有用的 SVG 工具,提供更好的图像处理 SVG 现正在 Web 设计领域变得越发流行, 你可以使用 Illustrator 或者 Inkscape 来创建 SVG 图像. 但当进行 Web ...
- CSS属性去除图片链接时的虚线框
CSS 之outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用.outline 属性是一个简写属性,用于设置元素周围的轮廓线.注释:轮廓线不会占据空间,也不一定是 ...
- 3天教你掌握Python必备常用英语词汇
第一天 path [ pɑ:θ ] 路径 unexpected [ˌʌnɪkˈspektɪd] 不期望的 class [klɑ:s] 类 usage [ˈju:sɪdʒ] 使用 public ['p ...
- 嵌入式C语言3.5 关键字---运算符
1. 算数运算符 + - A +/- B 要求A,B数据类型一致 * 乘法 / 除法 %取模 乘法CPU可能需要多个周期,甚至需要利用软件的模拟方法来实 ...
- git使用记录六:对commit的message做处理
修改最新commit的message git commit --amend 修改老旧commit的message 查询最新的三个log soaeon@DESKTOP-FUJJTHR MINGW64 / ...