bzoj 2338: [HNOI2011]数矩形 (计算几何)
来源:互联网 发布:百科门窗软件下载 编辑:程序博客网 时间:2024/06/07 02:46
题目描述
传送门
题目大意:给出n个点,求顶点都在n个点中的最大矩形。
题解
代码
#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#define N 1503#define LL long long using namespace std;int n,cnt,top,st[N*N];struct data{ LL x,y; data(LL X=0,LL Y=0) { x=X,y=Y; }}p[N]; data operator -(data a,data b){ return data(a.x-b.x,a.y-b.y);}LL pow(LL x){ return x*x;}struct line{ LL x,y; LL len; double ang; int a,b; line(int A=0,int B=0) { a=A,b=B; x=p[a].x+p[b].x; y=p[a].y+p[b].y; len=pow(p[a].x-p[b].x)+pow(p[a].y-p[b].y); ang=atan2(p[b].y-p[a].y,p[b].x-p[a].x); }}l[N*N];int cmp(line a,line b){ return a.x<b.x||a.x==b.x&&a.y<b.y||a.x==b.x&&a.y==b.y&&a.len<b.len|| a.x==b.x&&a.y==b.y&&a.len==b.len&&a.ang<b.ang; }bool check(line a,line b){ return a.x==b.x&&a.y==b.y&&a.len==b.len;}LL cross(data a,data b){ return a.x*b.y-a.y*b.x;}LL squ(line i,line j){ data v=p[i.a]-p[j.a]; data u=p[i.b]-p[j.a]; return abs(cross(v,u));}int main(){ freopen("a.in","r",stdin); scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%lld%lld",&p[i].x,&p[i].y); cnt=0; for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++) l[++cnt]=line(i,j); sort(l+1,l+cnt+1,cmp); LL ans=0; for (int i=1,j;i<=cnt;i=j+1) { j=i; top=0; while (j<=cnt&&check(l[i],l[j])) { st[++top]=j; j++; } j--; int tail=1; for (int k=1;k<=top;k++) { int c=tail; while (squ(l[st[tail]],l[st[k]])<squ(l[st[tail%top+1]],l[st[k]])){ tail=tail%top+1; if (tail==c) break; } ans=max(ans,squ(l[st[tail]],l[st[k]])); } } printf("%lld\n",ans);}
0 0
- BZOJ 2338 HNOI2011 数矩形 计算几何
- bzoj 2338: [HNOI2011]数矩形 (计算几何)
- [BZOJ2338][HNOI2011]数矩形(计算几何)
- [BZOJ2338][HNOI2011]数矩形(计算几何)
- 【bzoj2338】【HNOI2011】【计算几何】【数矩形】
- bzoj 2338: [HNOI2011]数矩形
- BZOJ 2338: [HNOI2011]数矩形
- bzoj 2338 [HNOI2011]数矩形
- bzoj 2338 [HNOI2011]数矩形
- [暴力 乱搞] BZOJ 2338 [HNOI2011]数矩形
- [BZOJ]2338: [HNOI2011]数矩形 叉积
- BZOJ 2338 HNOI 2011 数矩形 计算几何
- [BZOJ 2338][HNOI 2011]数矩形(计算几何)
- 【BZOJ】【P2338】【HNOI2011】【数矩形】【题解】【乱搞】
- [HNOI2011]数矩形
- 【HNOI2011】数矩形
- bzoj2338: [HNOI2011]数矩形
- 【bzoj2338】[HNOI2011]数矩形
- 【Codeforces 776 C. Molly's Chemicals】+ map + 前缀和
- 模板_poj2299Ultra-QuickSort_归并排序qiu
- Android 登录输入框自动上移
- 关于jQuery的Ajax操作
- MyEclipse安装JS代码提示插件——Spket插件)
- bzoj 2338: [HNOI2011]数矩形 (计算几何)
- 11_有用的资源
- 设计模式04:单例模式
- SpringBoot 整合mybatis
- Java解惑学习有感(八)---更多的库之谜
- 多条目加载
- Ubuntu16.04的Hadoop2.7.3安装HBase学习
- 有关IP冲突的问题记录
- 在VS2015中创建一个Physx工程