博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3707: 圈地
阅读量:6974 次
发布时间:2019-06-27

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

题目描述:

$2$ 维平面上有 $n$ 个木桩,黄学长有一次圈地的机会并得到圈到的土地,为了体现他的高风亮节,他要使他圈到的土地面积尽量小。圈地需要圈一个至少 $3$ 个点的多边形,多边形的顶点就是一个木桩,圈得的土地就是这个多边形内部的土地。(因为黄学长非常的神,所以他允许圈出的第 $n$ 点共线,那样面积算 $0$)

思路:

枚举每一条边,考虑这条边作为y轴坐标的大小排序,把边按斜率排序,每次转换边的时候之有这条边的两个端点的大小相对位置会发生变化,排名互换,维护这种变化。

以下代码:

#include
#define il inline#define db double#define _(d) while(d(isdigit(ch=getchar())))using namespace std;const int N=1005;db ans=1e60;int n,tot,pos[N],rk[N];struct node{ db x,y;}t[N];struct data{ int x,y;db k;}f[N*N];il int read(){ int x,f=1;char ch; _(!)ch=='-'?f=-1:f;x=ch^48; _()x=(x<<1)+(x<<3)+(ch^48); return f*x;}bool cmp(node t1,node t2){ return (t1.x
pos[y])swap(x,y); if(pos[x]>1) ans=fmin(ans,fabs(cal(x,y,rk[pos[x]-1]))); if(pos[y]
View Code

 

转载于:https://www.cnblogs.com/Jessie-/p/10487011.html

你可能感兴趣的文章
Laravel 验证中文本地化
查看>>
Redis学习笔记(9)-管道/分布式
查看>>
关于react的一些总结
查看>>
oracle数据库迁移
查看>>
规范很重要
查看>>
2018-09-10-weekly
查看>>
java单点登录
查看>>
HDU 4268 Alice and Bob [贪心]
查看>>
安卓市场--框架搭建3
查看>>
【矩阵哈希】【哈希表】bzoj2351 [BeiJing2011]Matrix
查看>>
【记忆化搜索】bzoj1652 [Usaco2006 Feb]Treats for the Cows
查看>>
returning into 语句
查看>>
JSTL 的 if else : 有 c:if 没有 else 的处理
查看>>
GNS3 模拟免费ARP
查看>>
shiro的原理理解
查看>>
半数集问题
查看>>
看图说说JVM内存
查看>>
ASP.NET Core 实现跨站登录重定向的新姿势
查看>>
JS Date 时间格式化
查看>>
socket No route to host - sovle
查看>>