
其他计算几何
LauZiyang
exploring
展开
-
模板 向量
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 评论 -
计算几何
计算几何资料一、引言 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用。在本文中,我们将对计算几何常用的基本算法做一个全面的介绍,希望...原创 2018-07-15 19:53:52 · 311 阅读 · 0 评论 -
省选专练 [USACO07OPEN]城市的地平线City Horizon
算法本质:求一堆矩形的交依旧是扫描线这里用线段树实现离散化l,r线段树维护区间最大值然后把每个离散键值统计一下(如果没有离散,那个l,r一段是不会不同的)#include<bits/stdc++.h>using namespace std;typedef int INT;#define int long long #define lc (p<...原创 2018-07-17 21:27:47 · 324 阅读 · 0 评论 -
省选专练[HNOI2012]三角形覆盖问题
典型的(对我来说不典型)的多边形的并通用算法:扫描线+链表不断往上扫描并且利用一个cover数组暴力改然后用链表维护添加和删除#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using ...原创 2018-07-17 21:22:24 · 242 阅读 · 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 评论 -
转载-计算几何的题目
其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中。之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠。 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代...转载 2018-07-08 21:09:41 · 191 阅读 · 0 评论 -
省选专练[HNOI2011]数矩形
做为一个省选题他是不怎么够格的明显的是矩形的两条对角线是一样大的,那么排个序就可以找出来。以对角线长度为第一关键字排序,然后对角线的中点坐标为2,3关键字排序辣么直接线性暴力比较但是就存在复杂度分析:如果出现一堆点分布在一个圆上他实际虽然看上去多,但是均摊下来也只有N^2的所以这个时间复杂度也是可以的。#include<bits/stdc++.h>using namespace st...原创 2018-05-26 21:07:49 · 198 阅读 · 0 评论 -
省选专练(大水题)usaco2008feb-silver连线游戏
貌似x/y排个序手动unique就好了#include<bits/stdc++.h>using namespace std;const double eps=1e-16;const double INF=1e16;int cmp(double A){ if(fabs(A)<eps)return 0; else return(A>0)?1:-1;}bool e...原创 2018-05-26 18:13:50 · 168 阅读 · 0 评论 -
省选专练[POI2008]TRO-Triangles
首先朴素算法极为简单n^3对吧然后思考挂上log排序然后枚举第一个点接着再按向量位置关系越靠右越好排序接着维护一个向量后缀和就完了。但是这个题卡精度。long double 就好了 #include<bits/stdc++.h>using namespace std;const int N=3e4;#define lb long doubleconst lb eps=1e-21...原创 2018-05-26 18:11:55 · 261 阅读 · 0 评论 -
模板半平面交
void Shrink(int &num){ int siz=0;// cout<<lcnt<<endl; for(int i=1;i<=lcnt;i++){// cout<<l[i].Ang<<endl; if(!siz){ siz++; temp[siz]=l[i]; } else{ if(!...原创 2018-03-21 20:10:01 · 188 阅读 · 0 评论 -
省选专练之 CERC2017 月球的景致 Lunar Landscape
一个卫星正在为探测车在月球上寻找一个合适的降落区。降落区被看做在平面直角坐标系中的一个方形区域。这颗卫星已经照了n张照片,每张照片都涵盖了月球表面的一块正方形区域。经过对相机的精细校准,可以保证所有照片涵盖的区域都和坐标对齐——正方形四个角的坐标都为整数。由于卫星的轨道一直在变化,所以照片有两种形式: ·A类照片的边缘和坐标轴平行。对于这样的照片,题目将会给出它中心的坐标(x,y)和它的边...原创 2018-09-14 23:21:07 · 390 阅读 · 0 评论