计算几何
看见我请叫我去学习
此人很懒
展开
-
B - Aerodynamic(div1)
被上一题拦住了所以看都没看这道sb题 题意: 给定一个多边形, 然后求该多边形包含原点任意滑动所组成的图形是否与原来的多边形相似 Face examples1: example2: 数据范围: 1≤n≤1e5,∣ai∣≤1e91\leq n\leq1e5, |a_i| \leq 1e91≤n≤1e5,∣ai∣≤1e9 Tutorial: 首先想到, 包含原点且任意移动的图形关于原点中心对称,...原创 2020-02-10 17:17:43 · 293 阅读 · 0 评论 -
Codeforces Round #574 (Div. 2)-F. Geometers Anonymous Club
F. Geometers Anonymous Club 现在有n个凸包,标号分别为1−n给出所有的顶点坐标,有q次询问,每次询问给你一段区间,你要将区间内的凸包进行闵可夫斯基求和,然后输出求和之后凸包的顶点数量。 >> face << Strategy: map去重 + 树状数组离线 + 闵科夫斯基定理 大佬传送门 比较重要的一点就是每次遇到重复的都要把重复的挪到查询...原创 2019-10-10 13:48:17 · 138 阅读 · 0 评论 -
Educational Codeforces Round 68 (Rated for Div
题意:给定若干平行与坐标轴的线段, 求这些线段组成的图形有多少个矩形 >> face << Tutorial: 这样考虑, 针对每个水平的线段, 我们需要维护这些垂直的线段: 与该水平线段相交的 垂直线段的最高点大于水平线段的高度 于是我们就可以用权值树状数组来维护该水平线段上有多少条符合要求的线段, 然后再用一个vector装最高点, 于是我们就可以向上扫描, 若在...原创 2019-09-27 16:36:23 · 107 阅读 · 0 评论 -
计算几何进阶(二)
题意: 给定一个平面点集, 求能不能用两条平行的直线覆盖掉这些点 >> face << Strategy: 考虑前三个点,假设点1点2共线, 那么除去这条直线上的所有的点后,剩下的点必然在一条直线上, 同理, 当点2, 3 共线, 1, 3 共线的情况也是一样的 #include <bits/stdc++.h> #include <bits/extc++...原创 2019-07-12 16:23:52 · 117 阅读 · 0 评论 -
计算几何进阶(一)
题意: 在一个平面内给定一个点集, 要求在这些点中找到一个三角形, 而且要求这个三角形内没有点(包括三角形的三条边) >> face << strategy: 默认点1, 2, 3为答案, 当三角形内部有点时,我就更新1, 2, 3为新的点 Complexity : O(n) #include <bits/stdc++.h> #include <bit...原创 2019-07-11 20:16:26 · 180 阅读 · 0 评论 -
计算几何专题(Ⅶ)
题意: 给定一个x的区间(x1, x2),然后给定n条直线,判断这些直线的交点有没有在区间(x1, x2)内; >> face << strategy: 仔细想想 就会发现 针对每两个在区间内相交的直线 都有 (y1∣x=x1−y2∣x=x1)(y1∣x=x2−y2∣x=x2)<0 (y_1\mid _{x = x_1} - y_2 \mid _{x ...原创 2019-07-11 15:45:10 · 152 阅读 · 0 评论 -
计算几何专题(六)
题意:给定一个由很多正三角形组成的六边形的边长,求该六边形是由多少个三角形组成的 >> face << Strategy: 然后仔细想想就会发现: ans=(a1+a2+a3)2−a12−a32−a52 ans = (a_1 + a_2+ a_3)^2 - a_1^2 - a_3^2 - a_5^2 ans=(a1+a2+a3)2−a12−a32−a52 #i...原创 2019-07-10 21:42:16 · 171 阅读 · 2 评论 -
计算几何专题(五)
题意: 给定n个点, 围成一个多边形围成的湖,一个人绕着走。如果在某个位置不转弯直走的话会掉入湖里 (其实就是判断左转的次数) >> face << strategy-1 : 从第一个点开始走, 利用叉积的性质来模拟 {A⃗×B⃗>0,A在B的右边A⃗×B⃗=0,A⃗⊥B⃗A⃗×B⃗<0,A在B的左边 \begin{dcases} \vec{A}...原创 2019-07-10 21:01:46 · 128 阅读 · 0 评论 -
计算几何专题(四)
题意:给定平面和上n个点,判断平面物理距离等=等于曼哈顿距离的点的对数 >> face << Strategy: D12=(x1−x2)2+(y1−y2)2 {D_1}^2 = (x_1 - x_2)^2 + (y_1 - y_2)^2 D12=(x1−x2)2+(y1−y2)2 D22=(∣x1−x2∣+∣y1−y2∣)2=(x1−x2)2+2∣x1−x2∣∣...原创 2019-07-10 19:10:49 · 110 阅读 · 0 评论 -
计算几何专题(三)-gcd判共线
题意: 给定n个点,求过一定点A, 至少引出多少条直线才能把剩下的所有的点覆盖 >> face << Strategy:我们可以观察到,方向相同但大小不同的向量(x, y), 在约gcd后会变成固定的向量,即使在最特殊的情况(平行于坐标轴)这个性质也依旧成立,于是,我们就可以用set来维护所有从定点出发的向量了,最后仅需判断有多少个向量不同就可以了 #include &l...原创 2019-07-09 21:02:17 · 245 阅读 · 0 评论 -
计算几何专题(二)
题意:给你一个正多边形n, 和一个角度制的角度Angle,要求三个数 A,B,C∈{1,2,⋯ ,n}使得min∣∠ABC−Angle∣ A, B, C \in \lbrace 1, 2, \cdots ,n\rbrace 使得\min \mid \angle ABC - Angle\mid A,B,C∈{1,2,⋯,n}使得min∣∠ABC−Angle∣ >...原创 2019-07-09 17:26:28 · 103 阅读 · 0 评论 -
计算几何专题(一)
题意:给定一个矩形的的四个顶点,要求判断点是被否在矩形内部 >> face << Strategy: see photo: that is : {y≤x+dy≤2n−d−xy≥x−dy≥d−x \begin{cases}y \leq x + d \\y\leq 2n-d-x \\ y\geq x -d \\ y\geq d - x \end{cas...原创 2019-07-08 20:00:22 · 216 阅读 · 0 评论 -
poj 1113 凸包入门
点我看题 咱们先看个图: 看完图以后有没有觉得很显然: 答案就是求个凸包周长加一个圆的周长 #include<bits/stdc++.h> #define maxn 1003 #define db double #define ll long long #define met(a, b) memset(a, b, sizeof(a)) #define pi acos(-1.0)...原创 2019-05-25 20:55:20 · 174 阅读 · 0 评论