随笔分类 - 计算几何
摘要:#include <bits/stdc++.h> using namespace std; const double EPS = 1e-8; const int N = 1e5+10; struct Point{ double x, y; }; int n; Point p[N]; bool equ
阅读全文
摘要:这两天准备学一点计算几何,先来一发基础的计算几何板子 #include <bits/stdc++.h> using namespace std; #define EPS (1e-8) bool equals(double x, double y){ return fabs(x-y) < EPS; }
阅读全文
摘要:关于扫描线的一点理解 扫描线本质上是一个只需上传的线段树. int cover[N]; // 记录线段是否被完全覆盖的次数. int length[N]; // 记录线段被覆盖过的长度 我们在进行扫描时,线段树的结点是什么? void update(int l,int r,int rt,int ul
阅读全文
摘要:扫描线 原理比较易懂 参考: [1] 一文读懂扫描线算法 面积并 面积并只需要选择x或y其一做扫描线.每次扫描更新线段树,将扫描线长度 * 两次扫描线距离得到子矩形面积,累加统计答案. /* 扫描线算法 */ /* * 前置知识: 线段树,离散化 * 矩形面积并 */ #include <cstdi
阅读全文
摘要:离散化 离散化作为一种常见的技巧,可以有效地降低时间和空间复杂度.本文介绍两种离散化模板.此外,离散化有一些坑点,在处理染色问题的端点方面不能直接套用模板.这种题应该具体分析. 方法一: 缺点:效率略低,未保存原数据 优点:重复元素离散值相同 #include <cstdio> #include <
阅读全文
摘要:C.Operation Love 链接:https://ac.nowcoder.com/acm/contest/5668/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 A
阅读全文