【A】计算几何 & DP

向量运算

  • 点积 \((x_1,x_2,x_3,\dots)\cdot(y_1,y_2,y_3,\dots)=\sum_i x_iy_i\)。
  • 叉积 \((x_1,y_1)\times (x_2,y_2)=x_1y_2-x_2y_1\)。
  • \(A\times B=-B\times A\)。

旋转卡壳

平面最近点对

对一维进行分治,然后求出两边递归的最近点对距离 \(d\)。
考虑跨中线的贡献,发现直接每个点检查 \(d\) 为半径的正方形即可,因为这里面不会超过 \(O(1)\) 个点。
\(O(n\log n)\)。

最小圆覆盖

边界上至少有三个点。

P3829 [SHOI2012] 信用卡凸包

圆弧一定全算进凸包里头了,然后把直边的所有端点全部算一次凸包就好了。

P3260 [JLOI2014] 镜面通道

只要连通就能过,跑最小割。

P10651 [ROI 2017] 虎(征集交互库) (Day 1)

先在点集上二分一个凸包,现在我们知道隐藏点在一个凸包减去另一个凸包内,是一个月牙。
然后在月牙上二分一个前缀。如果是问了一个凹的点集直接变成凸包就好了。
最后可以确定到一个三角形内。

AT_agc044_e [AGC044E] Random Pawn

显然到达最大值就会退出,那么可以把 max 放到头尾。
你考虑你在 \(i\) 处开始的期望收益是 \(f_i\),我们有:
\(f_i=\begin{cases}A_i\\ \frac{1}{2}(f_{i-1}+f_{i+1})-B_i \end{cases}\)
两种选择。

令 \(C_i=\frac{1}{2}(C_{i-1}+C_{i+1})-B_i\),\(g_i=f_i-C_i\)。
有 \(g_i=\max(A_i-C_i,\frac{1}{2}(g_{i-1}+g_{i+1}))\)。
这就是直接对 \(A_i-C_i\) 建凸包。

  • QOJ975 Game

简易版 LARSCH 算法

在线决策单调性 dp \(O(n\log n)\)。
令 \(f_i\) 表示 \(i\) 的 dp 值,\(op_i\) 表示 \(i\) 的决策点。
考虑分治 \((l,r]\),对 \(r\) 进行转移。流程如下:

  • 先用 \(f_{op_l\sim op_r}\) 更新 \(f_{mid},op_{mid}\)。
  • 递归分治 \((l,mid]\)。
  • 用 \(f_{l+1\sim mid}\) 更新 \(f_r,op_r\)。
  • 递归分治 \((mid,r]\)。

以前写的四种决策单调性 dp 形式 https://www.luogu.com.cn/article/95ahsmez

AT_dwango2016qual_e 花火

\(f_{i,j}=(\min_{k\le j} f_{i-1,k})+|p_i-j|\)。slope trick 维护。

CF280E Sequence Transformation

\(f_{i,j}=(\min_{j-b\le k\le j-a} f_{i-1,k})+(x_i-j)^2\)。
slope trick,维护函数平移和全局加一次函数。

P8439 Altale (Fan-made FTR 7)

根若不在环上:根的邻边可以割,代价为 1。
根若在环上:除了与根相连的环边,代价都是 1。与根相连的边可以看作花 1 的代价可以割掉最大子树,花 2 代价割掉两个与根相连的环边。
令这两种决策分别割掉了 \(x,y\) 个节点。
若 \(x\le y-x\),则可以拆成 \(x,y-x\) 两个代价为 1 的物品,直接排序贪心取。

剩下的就是 \(x>y-x\) 的。
按照两种决策性价比排序,代价为 2 的一定在前面。然后你类似 sale 一样,至多有一次反悔。排序换桶排就是 \(O(n)\) 的。

AT_abc355_g [ABC355G] Baseball

从小到大选择 \(x_i\),\(f_{i,j}\) 处理转移。
然后这个代价满足四边形不等式,可以 wqs + 决策单调性分治。

P9266 [PA 2022] Nawiasowe podziały

每段的代价 \(w\) 满足决策单调性,可以 wqs 二分。
然后内层做决策单调性分治,代价用莫队跑,做到 \(O(n\log ^2 n)\)。

莫队就是一开始处理好每个括号的匹配,并且如果能和上一个括号合成一个更大的合法括号序列那么就记录为同一种颜色。
然后注意 larsch 需要维护两个莫队,否则移动复杂度不对。

posted @ 2026-08-03 23:40  TallBanana  阅读(17)  评论(0)    收藏  举报