随笔分类 - 计算几何
摘要:二分时间转化为判定性问题 考虑网络流 $S$ 向第 $i$ 个巫妖连一条容量为 $\dfrac{mid}{time_i}+1$ 的边 第 $j$ 个精灵向 $T$ 连一条容量为 $1$ 的边 预处理出每个巫妖能否攻击每个精灵 通过判断圆和线段是否有交点即可 判断方法为圆心找到离线段的最近距离和半径比
阅读全文
摘要:最大面积一定出现在凸包上 先求出凸包,再枚举对角线,剩下的两个点用旋转卡壳得到
阅读全文
摘要:首先,不知道为什么用了 long double 之后在wsl和cmd跑出来的结果不一样。。看了老半天老是发现不了错。 把圆心平移到坐标原点方便后面计算。 预处理出每个粒子的轨迹,当前位置为 $p$,速度为 $v$,设碰撞点为 $q$,$q=p+tv$,可以得到方程 $(p_x + t v_x)^2
阅读全文
摘要:最小左转法将平面图转成对偶图,然后扫描线进行点定位。 上述两种算法可看这篇博客 这个图可能存在一个轮廓包含另一个轮廓的情况,那么就把左上角的点连个线就可以了,实现也是用扫描线。 自己看懂了算法代码还是不会写,计算几何过于薄弱。。。可作为板子好好巩固。。。 #include <bits/stdc++.
阅读全文
摘要:能看到其他所有点的区域就是轮廓线的半平面交。 然后最小高度就是半平面交与轮廓线这两个一次分段函数的差,极值肯定出现在分段点上,分别求一下即可。 #include <bits/stdc++.h> #define db double const db eps = 1e-9; inline int sig
阅读全文
摘要:可见的直线为一下凸壳。 先按斜率和截距从小到大排序,再用单调栈判断交点的相对位置即可。 #include <bits/stdc++.h> const int N = 5e4 + 7; const double eps = 1e-7; inline int dcmp(double x) { if (f
阅读全文

浙公网安备 33010602011771号