博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4166 [SCOI2007]最大土地面积
阅读量:6876 次
发布时间:2019-06-26

本文共 692 字,大约阅读时间需要 2 分钟。

首先,四边形的四个点肯定都在凸包上(别问我为什么我也不知道,感性理解一下好了)

那么我们可以求出凸包之后\(O(n^4)\)暴力枚举,据说在随机数据下凸包上的点只有\(O(logn)\)个可过

然而出题人大大的没有良心,上面那样写只有50分

我们考虑枚举对角线,那么剩下的两个点就是在这条对角线两边,也就是说要分别找到和这条边面积最大的点。发现这个可以用旋转卡壳来优化,计算面积用叉积,于是总的时间复杂度即为\(O(n^2)\)

//minamoto#include
#define fp(i,a,b) for(register int i=a,I=b+1;i
I;--i)using namespace std;//template
inline bool cmax(T&a,const T&b){return a
=0)--top; st[++top]=p[i]; } st[++top]=p[0]; if(top==4)return printf("%.3lf\n",(cross(st[0],st[1],st[2])+cross(st[2],st[3],st[0]))/2); fp(i,0,top)for(register int j=i+2,k=i+1,l=(i+3)%top;j

转载于:https://www.cnblogs.com/bztMinamoto/p/10000997.html

你可能感兴趣的文章
ZooKeeper开发手册中文翻译
查看>>
Oracle体系结构之Oracle分区
查看>>
HDU 2594 Simpsons’ Hidden Talents (KMP)
查看>>
CORS详解
查看>>
eclipse/myeclipse选中编辑区域文件,Package Explorer定位文件所在项目及文件夹
查看>>
Snail—OC学习之类别Category
查看>>
Java笔记2:Eclipse编写第一个Java程序
查看>>
【足迹C++primer】表达式求值
查看>>
javascript小白学习指南0---1
查看>>
C#实现接口xml序列化与反序列化
查看>>
[译]Godot系列教程一 - 场景与节点
查看>>
BUG级别定义标准
查看>>
Java常考面试题(经典)
查看>>
可能是迄今为止最好的GitHub代码浏览插件--赞
查看>>
ASP.NET Core 微服务初探[1]:服务发现之Consul
查看>>
HDU-1072 Nightmare BFS
查看>>
认清世界,认清自我,超凡脱俗
查看>>
如何在Fedora 22上面配置Apache的Docker容器
查看>>
Swift 控制流
查看>>
css浮动、BFC、定位问题
查看>>