首页 > TAG信息列表 > 凸壳

入门二维凸包

算法概述 考虑平面上的若干个无序分布的点,要用一根橡皮筋框柱所有点(橡皮筋绷在点上),橡皮筋所受弹力方向只能向外。这跟橡皮筋及橡皮筋所框柱的区域就叫做一个凸包;橡皮筋叫做凸壳。 书面地,对于平面内的点集 \(X\),所有完全包含它的凸多边形的交集叫做 \(X\) 的凸包(Convex Heap)。 其中

凸壳优化dp/spole trick

写给自己的一点复习与总结 (主要是今天高强度盯着东西罚坐以及晚上和d*h battle了很久,所以来写点东西) (话说,最近用onenote记东西习惯了,一下子有点不适应) spole trick 当一些dp直接进行复杂度不可接受的时候,如果这个dp的斜率都是单调递增(或递减的),并且都是整数,那么我们可以考虑这

【学习笔记】带权二分

直线与凸壳的相切关系 如果凸壳的斜率互不相同,凸壳上存在两点间的斜率是 \(k\) ,那么斜率为 \(k\) 的直线和凸壳有两个切点(如果存在相同的斜率那么可能切更多的点),如果不存在,则只有一个切点。 令红线的斜率为 \(k_1\) , 蓝线的斜率为 \(k_2\) 有且仅有 \(k\in [k_1,k_2]\) 的斜率能

动态凸壳

我并不会求静态二维凸包,但是在培训中碰到几个需要使用平衡树来维护凸包的计算几何题 二维凸包 凸包:求一个周长最小的,并且能够包含所有给定点的多边形。当多边形表面存在凹陷时,根据三角不等式\(\begin{cases}a+b>c\\b+c>a\\a+c>b\end{cases}\),一定没有直接把最短边连起来优 维护动

「ABC217H」Snuketoon

题目 点这里看题目。 分析 其实是一道比较套路的题目。一开始就并不那么容易想到如下的 DP: 设 \(f_{i,j}\) 表示第 \(i\) 次滋水时,当前若处在 \(j\) 位置,可能受到的最小伤害。转移还是比较显然: \[f_{i,j}= \begin{cases} \min_{j-T_{i}+T_{i-1}\le k\le j+T_i-T_{i-1}}\{f_{i-1,k}

[Bzoj4311]向量

待填坑 https://darkbzoj.tk/problem/4311 线段树分治 + 凸包 + 三分  题意大概就是支持插入和删除,以及查询集合中(x,y)的点积最大值 我们知道题目所给的向量都在第一象限,** 所以我们需要维护上凸壳 ** 又由于上凸壳斜率单调,所以我们可以三分极值 然后因为存在 添加/撤销 所以我们可

最小乘积生成树

模板 一个无向图,每条边有边权\(a_i\)和\(b_i\),求一个生成树最小化 \[\sum a_i\cdot\sum b_i \]思路:考虑将每种生成树对应成一个点\((\sum a_i,\sum b_i)\),那么答案一定在下凸壳上(显然),但是不能直接用求凸壳的方法,因为点数过多,考虑另一种递归求凸壳的方法: 先找到凸壳的两个端点A,B(

【洛谷7028】[NWRRC2017] Joker(分块+凸壳)

点此看题面 一个长度为\(n\)的序列\(a\),令\(P\)为所有正数之和,\(N\)为所有负数之和,定义\(w_i=\begin{cases}\frac{a_i}P&a_i>0,\\\frac{a_i}{-N}&a_i<0\end{cases}\)。 \(q\)次操作,每次修改某一个\(a_i\)。 在所有操作之前及每次操作之后,求出使\(s_i=\sum_{x=1}^iw_x\)最大的最小

算法竞赛专题解析(12):DP优化(2)--斜率(凸壳)优化

本系列是这本算法教材的扩展资料:《算法竞赛入门到进阶》(京东 当当 ) 清华大学出版社 如有建议,请联系:(1)QQ 群,567554289;(2)作者QQ,15512356 文章目录1. 把状态方程变换为平面的斜率问题2. 求一个dp[i]3. 求所有的dp[i]4. 例题5. 习题   有一类DP状态方程,例如:     dp[i]=min

HZOJ Function

比较神仙的一道dp,考试的时候还以为是打表找规律啥的。 我们重新描述一下这道题:一个10 9 × n的网格,每个格子有一个权值,每一列格子的权值都是相同的。从一个起点开始,每次可以向上走一格或者向左上角走一格,直到走到最上面一行为止,你需要最小化经过的格子的总权值。 然而我并