
凸包
LauZiyang
exploring
展开
-
省选专练USACO TRAIN5.1 圈奶牛
凸包入门题。介绍一下我的算法:Graham扫描法利用栈的思想。与Jarris步进法不同的是,这个算法不适用角度。他利用了向量的叉乘。根据有向的平行四边形来判断当前点是否更优。OK看代码吧。(*^▽^*)。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#...原创 2018-03-19 22:54:54 · 270 阅读 · 0 评论 -
模板 向量
const double INF=1e16;const double eps=1e-8;const int N=60000;struct Point{ double x,y; Point(double _x=0,double _y=0):x(_x),y(_y){} friend Point operator +(Point A,Point B){return Point(A.x+B.x...原创 2018-03-21 20:09:24 · 165 阅读 · 0 评论 -
省选专练JSOI2007合金
这个是真的想不到啊第一你搞三维的没意义于是乎,把c看做1-a-b那么c就没有了意义,因为确定了a,b辣么c自然确定下来其次对于这个东西有着重要的引理:对于二元笛卡尔基上的点(Ax,Ay)(Bx,By)他们的连线就是可以配凑的情况辣么扩展到多个点进行配凑:由于可把这个线段上的每一个点都看做一种新点,于是这些点的连线可以扩展呜呼,线的无限重叠就是面了啊!!!顾:这实际是求多少个点构成的凸包可以包含一个...原创 2018-05-26 21:21:40 · 155 阅读 · 0 评论 -
省选专练[HNOI2008]水平可见直线
就是一个单纯的上凸壳扫描法水过#include<bits/stdc++.h>using namespace std;const int N=600000;const double eps=1e-16;struct Point{ double x,y; int id; Point(double _x=0.0,double _y=0.0):x(_x),y(_y){} fri...原创 2018-05-26 21:41:50 · 159 阅读 · 0 评论 -
省选专练之HNOI2007最小矩形覆盖&模板:旋转卡壳
1:先求出凸包2:由于矩形的一条边必然在凸包上枚举这条边3:左右(l,r)利用点乘算出(因为存在cos)4:上下(p)利用叉乘算出(因为存在sin)#include<bits/stdc++.h>using namespace std;const double eps=1e-12;const int N=2e6+100;int cmp(double A){...原创 2018-07-16 21:45:55 · 157 阅读 · 0 评论