nyoj 253:LK的旅行 【旋转卡壳入门】
求平面最大点对。
找凸包 -> 根据凸包运用旋转卡壳算法求最大点对(套用kuang巨模板)
#include<bits/stdc++.h>
using namespace std;
struct point
{
int x,y;
point operator -(const point& rhs)const
{
point ret;
ret.x=x-rhs.x;
ret.y=y-rhs.y;
return ret;
}
int operator *(const point& rhs)const//叉乘
{
return x*rhs.y-y*rhs.x;
}
bool operator <(const point& rhs)const
{
return x<rhs.x||x==rhs.x&&y<rhs.y;
}
} p[],s[];
int top;
bool ok(point A,point B,point C) //判断ABC是否是按逆时针顺序给出
{
;
}
int dist2(point a,point b)
{
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
int rotating_calipers()
{
;
point v;
;
; i < top; i++)
{
v = s[i]-s[(i+)%top];
)%top]-s[cur])) < )
cur = (cur+)%top;
ret = max(ret,max(dist2(s[i],s[cur]),dist2(s[(i+)%top],s[(cur+)%top])));
}
return ret;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
; i<n; i++)
scanf("%d%d",&p[i].x,&p[i].y);
sort(p,p+n);
top=;
; i<n; i++) //求下凸包
{
&& !ok(s[top-],s[top-],p[i]))
top--;
s[top++]=p[i];
}
;
; i>=; i--) //求上凸包
{
&& !ok(s[top-],s[top-],p[i]))
top--;
s[top++]=p[i];
}
--top; // 首尾点相同,故舍去
int ans=rotating_calipers();
printf("%d\n",ans);
}
}
nyoj 253:LK的旅行 【旋转卡壳入门】的更多相关文章
- nyoj_253:LK的旅行(旋转卡壳入门)
题目链接 求平面最大点对. 找凸包 -> 根据凸包运用旋转卡壳算法求最大点对(套用kuang巨模板) 关于旋转卡壳算法 #include<bits/stdc++.h> using n ...
- nyoj-253-LK的旅行(Graham算法和旋转卡壳)
题目链接 /* Name:nyoj-253-LK的旅行 Copyright: Author: Date: 2018/4/27 15:01:36 Description: zyj的模板 */ #incl ...
- P1452 Beauty Contest 旋转卡壳
\(\color{#0066ff}{题目描述}\) 贝茜在牛的选美比赛中赢得了冠军"牛世界小姐".因此,贝西会参观N(2 < = N < = 50000)个农场来传播善 ...
- P1452 Beauty Contes(旋转卡壳版)
题目背景 此处省略1W字^ ^ 题目描述 贝茜在牛的选美比赛中赢得了冠军”牛世界小姐”.因此,贝西会参观N(2 < = N < = 50000)个农场来传播善意.世界将被表示成一个二维平面 ...
- 1393: Robert Hood 旋转卡壳 凸包
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1393 http://poj.org/problem?id=2187 Beauty Contest ...
- POJ 3608 Bridge Across Islands --凸包间距离,旋转卡壳
题意: 给你两个凸包,求其最短距离. 解法: POJ 我真的是弄不懂了,也不说一声点就是按顺时针给出的,不用调整点顺序. 还是说数据水了,没出乱给点或给逆时针点的数据呢..我直接默认顺时针给的点居然A ...
- 【BZOJ 1069】【SCOI 2007】最大土地面积 凸包+旋转卡壳
因为凸壳上对踵点的单调性所以旋转卡壳线性绕一圈就可以啦啦啦--- 先求凸包,然后旋转卡壳记录$sum1$和$sum2$,最后统计答案就可以了 #include<cmath> #includ ...
- 【POJ 2187】Beauty Contest(凸包直径、旋转卡壳)
给定点集的最远两点的距离. 先用graham求凸包.旋(xuán)转(zhuàn)卡(qiǎ)壳(ké)求凸包直径. ps:旋转卡壳算法的典型运用 http://blog.csdn.net/hanch ...
- 【BZOJ-1069】最大土地面积 计算几何 + 凸包 + 旋转卡壳
1069: [SCOI2007]最大土地面积 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2707 Solved: 1053[Submit][Sta ...
随机推荐
- 北风设计模式课程---备忘录(Memento)模式
北风设计模式课程---备忘录(Memento)模式 一.总结 一句话总结: 备忘录模式也是一种比较常用的模式用来保存对象的部分用于恢复的信息,和原型模式有着本质的区别,广泛运用在快照功能之中.同样的使 ...
- 【CDN+】 CDN项目的两大核心--缓存与回源
前言 项目中碰到CDN专用名词: 回源, 然后不知道什么意思,反过来查询了一下CDN相关的一些基本术语,特做记录 CDN基础概念 CDN (Content Delivery Network,即内容分发 ...
- JS-闭包(Closures)和let声明块级作用域变量
闭包: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures 闭包是函数和声明该函数的词法环境的组合. let: https ...
- 【EWM系列】SAP EWM模块-部分流程图
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[EWM系列]SAP EWM模块-部分流程图 ...
- LeetCode 337. House Robber III 动态演示
每个节点是个房间,数值代表钱.小偷偷里面的钱,不能偷连续的房间,至少要隔一个.问最多能偷多少钱 TreeNode* cur mp[{cur, true}]表示以cur为根的树,最多能偷的钱 mp[{c ...
- K-th Number 【POJ - 2104】【可持久化线段树】
题目链接 因为这道题没有删除修改之类的,所以很多人会用离散化之后的线段树来做,但是实际上(可能是我懒得去做离散化这个操作了),然后就是直接写可持久化线段树,区间的长度就是int的从最小到最大的长度,然 ...
- [LeetCode] 477. Total Hamming Distance(位操作)
传送门 Description The Hamming distance between two integers is the number of positions at which the co ...
- Django 安装、创建第一个项目
一.版本 Django 版本对应的 Python 版本: Django 版本 Python 版本 1.8 2.7, 3.2 , 3.3, 3.4, 3.5 1.9, 1.10 2.7, 3.4, ...
- 10.jmeter jsr223 javascript 深度比对json object
function sortJSON(data, key, way) { //log.info(" " + key + " ------------------- &quo ...
- git不能先commit后再pull
本文首发hilsion的博客 今天遇到一个在使用git上的一个误区.具体的问题现象是: 我commit后再pull而不能在本地合并的情况,结果导致我的commit直接把同事的修改覆盖了.因为相对于我此 ...