随笔分类 -  计算几何-凸包

摘要:题目链接 "BZOJ1185" 题解 最小矩形一定有一条边在凸包上,枚举这条边,然后旋转卡壳维护另外三个端点即可 计算几何细节极多 1. 维护另外三个端点尽量不在这条边上,意味着左端点尽量靠后,右端点尽量靠前,加上或减去一个$eps$来处理 2. $C++$中$printf$输出$0.00000$会 阅读全文
posted @ 2018-07-11 10:09 Mychael 阅读(226) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3672" 题解 如果暂时不管$l[i]$的限制,并假使这是一条链 设$f[i]$表示$i$节点的最优答案,我们容易得到$dp$方程 $$f[i] = min\{f[j] + (d[i] d[j])p[i] + q[i]\}$$ 显而易见可以斜率优化 化为 $$f[j] = p[ 阅读全文
posted @ 2018-06-25 17:52 Mychael 阅读(154) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ1069" 题解 首先四个点一定在凸包上 我们枚举对角线,剩下两个点分别是两侧最远的点 可以三分,复杂度$O(n^2logn)$ 可以借鉴旋转卡壳的思想,那两个点随着对角线的一定单调不减,可以用两个指针维护,复杂度$O(n^2)$ C++ include include incl 阅读全文
posted @ 2018-06-10 17:15 Mychael 阅读(148) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3533" 题解 我们设询问的向量为$(x_0,y_0)$,参与乘积的向量为$(x,y)$ 则有 $$ \begin{aligned} ans &= x_0x + y_0y \\ y &= \frac{x_0}{y_0}x + \frac{ans}{y_0} \\ \end{al 阅读全文
posted @ 2018-05-20 19:29 Mychael 阅读(232) 评论(0) 推荐(0)