![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
search_star
个人博客seekstar.github.io
展开
-
bzoj 1502月下柠檬树 Simpson积分
关键点是,水平的圆投影到水平面之后仍然是与原先全等的圆。 然后圆与圆之间通过曲面无缝连接,所以投影下来之后圆与圆之间通过公切线连接。 直接求有点难。把投影区域的上边界当成一个函数,然后套Simpson积分就简单了。 我的实现用了指针从左往右扫,其实没必要,暴力好像还会快一点。 代码(darkbzoj 218ms): #include <cstdio> #include <cmat...原创 2019-11-03 14:11:15 · 137 阅读 · 0 评论 -
poj 2826
vjudge链接:https://vjudge.net/problem/POJ-2826 题意很简单,天上下雨,用两根线段接水,问能接住多少面积的水。 看起来很简单,然后WA了5发。。。 首先判断两根线段是否相交,若不相交则显然不能接到水。 然后求交点p。分别求出两条线段的端点中较上面的端点p1, p2。然后以交点为新的原点,p1 -= p, p2 -= p。这样就映射到了以p为原点的坐标系中。问...原创 2019-11-02 15:27:53 · 149 阅读 · 0 评论 -
带无穷判断的半平面交
网上的半平面交一般不能区分半平面交不存在和面积无穷的情况。这里给出一个方法。 为了叙述的简洁,先假设所有直线都不共线,并且一些边界情况不予讨论,详情请见代码。 如果半平面交面积无穷,那么一定存在一个点,使得从这个点朝某个方向射去能够无限延伸。假设存在一条有向直线,其方向向量为v,极角为θ\thetaθ,那么从任意一个点,以极角(θ,θ+π)(\theta, \theta + \pi)(θ,θ+π)...原创 2019-11-01 22:58:17 · 225 阅读 · 0 评论 -
bzoj 1492 斜率优化dp
设f[i]为第i天出售后最多能得到的钱数,枚举最后一次买入的天数j,那么有转移方程: f[i]=f[j]a[j]r[j]+b[j]b[i]+r[j]f[j]a[j]r[j]+b[j]a[i]f[i] = \frac{f[j]}{a[j] r[j] + b[j]} b[i] + \frac{r[j] f[j]}{a[j] r[j] + b[j]} a[i]f[i]=a[j]r[j]+b[j]f[j]...原创 2019-10-31 22:18:28 · 206 阅读 · 0 评论 -
sgu 277 水平序动态凸包
用整形实现的。封装好了。就是不知道为什么有点慢。 code(373ms): #include <iostream> #include <set> using namespace std; #define DEBUG 0 typedef long long LL; typedef LL LT; template <typename T> T sq(T x)...原创 2019-10-31 11:05:01 · 399 阅读 · 1 评论 -
poj 2069 最小球覆盖几何解法
期望复杂度O(n) 原理与最小圆覆盖类似,只是要多求一个四面体的外接圆。 坑点:poj不能srand(time(NULL)),会RE 代码: #include <cstdio> #include <cmath> #include <limits> #include <algorithm> #include <ctime> using n...原创 2019-10-23 12:25:38 · 228 阅读 · 0 评论 -
2019 CCPC秦皇岛现场赛A题O(n^2)做法
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6731 可惜了。现场赛用的GCD加hash,然后因为GCD的log刚好是二分的log的3倍,时限2000ms我2038ms被卡掉了。。。 思路: 把任意两个不同的点的向量存到哈希表里,然后对于每一个询问A,先假设A是那个直角,再枚举第二个点B,对答案的贡献就是与AB垂直的向量AC的个数。由于对称性,最后答案...原创 2019-09-29 21:18:05 · 308 阅读 · 0 评论