04 2023 档案
摘要:可以用 SAM 来做,只不过空间常数稍大。 考虑建出后缀自动机后,用 fafafa 树维护 Endpos\text{Endpos}Endpos 集合大小即可,非常经典的用 SAM 做的问题。 #include <bits/stdc++.h> using namespace std; const in
阅读全文
摘要:先考虑对图黑白染色,并且设 SSS 和 TTT 分别为源点和汇点。容易发现,四联通的两个点,肯定是一个黑一个白。 我们对于所有黑点 (i,j)(i,j)(i,j),我们令 u=(i−1)×m+ju=(i-1) \times m + ju=(i−1)×m+j,从 SSS 到 uuu 连一条容量为 ai
阅读全文
摘要:先考虑能否逃出。 我们不妨设删去的边的两点编号为 u,vu,vu,v,其中 uuu 是 vvv 的父亲。 容易发现当且仅当 RRR 在 vvv 的子树中时无法逃出,即 RRR 和 vvv 的 LCA 为 vvv。可以通过树剖等处理。 我们假设不能逃出,那么需要考虑能否到商店。因为已经无法逃出,那么
阅读全文
摘要:考虑建出圆方树。 对于任意两个点,其路径中必须要经过的点就是这两个点对应的圆方树中点的路径之间圆点数量。也就是割点数量。 于是 LCA 处理即可。 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath>
阅读全文