随笔分类 -  计算几何

1 2 3 下一页

HDU 6097 Mindis(圆的反演)
摘要:题目:传送门 题意 已知一个圆心在原点O的圆的半径,给你两个点P,Q,|PO| == |DO|,P,Q不在圆外。在圆上取一点D,求 |PD| + |QD| 的最小值。 思路 点在圆内,会比较难处理,若点在圆外,则只需分两种情况即可: 1.直线PQ和圆相交,那么D一定是直线PQ和圆的交点中的任意一个, 阅读全文

posted @ 2020-10-16 15:12 Willems 阅读(159) 评论(0) 推荐(0)

HDU 4773 (圆的反演)
摘要:题目:传送门 题目 题意:给定两个圆的半径和圆心,它们是相离的,在这两个圆外给定一个点p,输出所有过点p且与已知的两个 圆外切的圆。 思路 根据圆的反演的一些性质,可以将过点 p 的圆与已知两个圆外切转化为过点 p 的直线,与已知两个圆外切。 圆的反演的一些性质: 1、过反演中心的圆,反形(经过反演 阅读全文

posted @ 2020-10-16 12:36 Willems 阅读(215) 评论(0) 推荐(0)

牛客挑战赛43. C.最优公式 (二分,思维,切比雪夫距离与曼哈顿距离的转换)
摘要:题目:传送门 题意 思路 有两种做法: 一.盲猜 a = b,那就直接二分 a,就完事儿了. 二.按照题解那样的思路,这个会比较难想一点吧。 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #d 阅读全文

posted @ 2020-09-22 23:21 Willems 阅读(236) 评论(0) 推荐(0)

HDU 3007 Buried memory (最小圆覆盖,随机增量法)
摘要:题目传送门 求覆盖 n 个点的最小圆 时间复杂度:o(n) 推荐博客: 博客1 博客2 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define mem(i, j) memset(i, j 阅读全文

posted @ 2020-04-29 16:05 Willems 阅读(183) 评论(0) 推荐(0)

牛客练习赛60 F、几何带师 (二维偏序 + 几何基础 + 思维)
摘要:题目:传送门 题意 思路 官方题解 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define mem(i, j) memset(i, j, sizeof(i)) #define rep(i 阅读全文

posted @ 2020-04-03 19:46 Willems 阅读(166) 评论(0) 推荐(0)

HDU 3124 Moonmist (扫描线 + 二分 + 平面最近圆对的距离)
摘要:题目:传送门 题意 给你 n 个互不相交的圆的圆心和半径,问你最近的两个圆的距离是多少,T个测试。 2 <= N <= 50000 1 <= T <= 10 思路 参考博客 二分每个圆半径的增量,如果每个圆的半径增加了 mid 之后存在圆的相交,那么这个 mid 就偏大了,如果不相交,那么就是 mi 阅读全文

posted @ 2020-03-26 22:20 Willems 阅读(191) 评论(0) 推荐(0)

BZOJ 3533 向量集(凸包 + 二分 + 线段树)
摘要:题目:传送门 题意 1 < =N < =4*10^5 思路 思路参考 -> 戳 代码参考-> 戳 #include <bits/stdc++.h> #define mem(i, j) memset(i, j, sizeof(i)) #define rep(i, j, k) for(int i = j 阅读全文

posted @ 2020-03-25 21:54 Willems 阅读(146) 评论(0) 推荐(0)

洛谷 P2521 [HAOI2011]防线修建 (动态凸包,凸包性质 + set)
摘要:题目:传送门 题意 思路 每次询问 1 都是删除 1 个点,由于删除点对凸包的影响比较难搞,所以,我们可以用离线做法,将询问逆着来做,这样,每次询问 1 就相当于加入一个点,加入一个点对凸包的影响,是比较好维护的,可以用 set 存当前凸包的点,具体细节看代码。 #include <bits/std 阅读全文

posted @ 2020-03-25 00:02 Willems 阅读(182) 评论(0) 推荐(0)

uva 12307 - Smallest Enclosing Rectangle (求凸包最小面积外接矩阵、求凸包最小周长外接矩阵、旋转卡壳、模板)
摘要:题目:传送门 思路: 求面积和求周长是一样的思路。 求面积的步骤可 戳 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <queue> #include <map> #i 阅读全文

posted @ 2020-03-17 17:03 Willems 阅读(134) 评论(0) 推荐(0)

UVA 10173 Smallest Bounding Rectangle (求凸包最小面积外接矩阵、旋转卡壳)
摘要:题目:传送门 思路: 计算过程出处:戳 计算全部四个多边形的端点, 称之为 xminP, xmaxP, yminP, ymaxP。 通过四个点构造 P 的四条切线。 他们确定了两个“卡壳”集合。 如果一条(或两条)线与一条边重合, 那么计算由四条线决定的矩形的面积, 并且保存为当前最小值。 否则将当 阅读全文

posted @ 2020-03-16 23:17 Willems 阅读(393) 评论(0) 推荐(0)

POJ 3608 Bridge Across Islands (两凸包间最短距离 + 旋转卡壳)
摘要:题目:传送门 经典题 代码大部分参考了:kuangbin #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <queue> #include <map> #include 阅读全文

posted @ 2020-03-16 16:44 Willems 阅读(220) 评论(0) 推荐(0)

BZOJ 4570: [Scoi2016]妖怪 (三分 || 凸包)
摘要:题目: BZOJ传送门 题目:洛谷传送门 题意: 邱老师有n只妖怪,每只妖怪有攻击力atk和防御力dnf两种属性。在某种环境中,妖怪可以降低自己k×a点攻击力,提升k×b点防御力或者,提升自己k×a点攻击力,降低k×b点防御力,a,b属于正实数,k为任意实数,但是atk和dnf必须始终非负。妖怪在环 阅读全文

posted @ 2020-03-15 12:58 Willems 阅读(92) 评论(0) 推荐(0)

洛谷 P1429 平面最近点对 (分治)
摘要:题目:传送门 题意:给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的 2≤n≤200000 思路: 截取自洛谷题解的 -> 戳 #include <bits/stdc++.h> #define LL long long #define mem(i, j) 阅读全文

posted @ 2020-03-14 18:46 Willems 阅读(187) 评论(0) 推荐(0)

Gym - 101635K:Blowing Candles (旋转卡壳,求凸包宽度)
摘要:题目:传送门 题意:给 n 个点,用矩阵将所有点覆盖,要求矩形宽度最小,输出宽度。 思路: 参考自 -> 戳 旋转卡壳 + 点到直线最短距离 最远距离是点到点;宽度是点到边。 #include <iostream> #include <stdio.h> #include <string.h> #in 阅读全文

posted @ 2020-03-14 15:30 Willems 阅读(219) 评论(0) 推荐(0)

HDU 4087 ALetter to Programmers (三维坐标旋转 矩阵 + 矩阵快速幂)
摘要:题目:传送门 思路: 出处 - > 戳 平移: 1 0 0 tx x x+tx0 1 0 ty * y = y+ty0 0 1 tz z z+tz0 0 0 1 1 1 缩放: scale kx ky kz kx 0 0 0 0 ky 0 0 0 0 kz 0 0 0 0 1 旋转: 绕任意轴(过原 阅读全文

posted @ 2020-03-14 11:28 Willems 阅读(135) 评论(0) 推荐(0)

POJ 3845 Fractal (向量旋转,好题)
摘要:题目:传送门 题意:给你一个 n 个点的折线,每一次变换把折线上的每条线段都变成最初给的折线形状,重复 d 次,问从第一个点沿着线断走全长 * f,最终到达哪个点。 思路: 大部分参考了 -> 戳 令 tmp = (折线的全长) / (第一个点到第 n 个点的直线距离), 那么一条线段变成最初给的折 阅读全文

posted @ 2020-03-13 19:47 Willems 阅读(153) 评论(0) 推荐(0)

HDU 1700 Points on Cycle (向量旋转 + 圆内接三角形周长和面积最大的是正三角形)
摘要:题目:传送门 题意:在一个以原点为圆心的圆中,给你圆上的一个点,让你再选两个点, 使得这三个点构成的内接正三角形周长最大。 思路: 圆周长最大的内接三角形是正三角形:证明 面积最大的内接三角形也是正三角形:链接 那只要将点逆时针旋转 120度 和 顺时针旋转 120 度 得到的两个点就是答案了 #i 阅读全文

posted @ 2020-03-13 09:39 Willems 阅读(710) 评论(0) 推荐(0)

POJ 1271 Nice Milk (半平面交应用)
摘要:题目:传送门 题意:有一个凸多形面包,有一罐牛奶,牛奶高度为 h,认为牛奶的宽度无限长,现在你最多可以蘸 k 次牛奶, 问你蘸到牛奶的面包的面积最大是多少。 3 <= n <= 20, 0 <= k <= 8, 0 <= h <= 10 思路:dfs 枚举凸多边形蘸牛奶的 K 条边,将这些边向内缩进 阅读全文

posted @ 2020-03-12 18:51 Willems 阅读(224) 评论(0) 推荐(0)

POJ 2540 Hotter Colder (半平面交应用 + 向量旋转)
摘要:题目:传送门 题意:在一个以 (0, 0) 为左下角,以(10, 10) 为右上角的正方形中。正方形的某个点藏着东西,你会猜测这个东西在哪里。起初你在点 (0,0),随后给出最多 50 个点,表示的是你猜测的点,然后还会输入一个字符串,若输入的是Hotter,表示你当前所在的点离那个东西的距离比你之 阅读全文

posted @ 2020-03-12 10:26 Willems 阅读(135) 评论(0) 推荐(0)

POJ 1755 Triathlon (半平面交应用 + 思维 + 直线用两点的向量表示)
摘要:题目:传送门 题意:铁人三项比赛,给你 n 个参赛者在每一项比赛的速度 a[ i ] ,b[ i ], c[ i ],输出 n 行,第 i 行代表是否能通过改变三项比赛的路程,使得第 i 位参赛者是第一个到达终点的(唯一一个到达终点的)。 1 <= n <= 100, 1 <= ai, bi, ci 阅读全文

posted @ 2020-03-11 19:16 Willems 阅读(158) 评论(0) 推荐(0)

1 2 3 下一页

导航