P7712 [Ynoi2077] hlcpq
有暴力,
O
(
n
2
)
\mathcal O(n ^ 2)
O(n2) 建边,tarjan
求割点。
再考虑优化,拿出线段树优化建边过程,考虑到区间限制,扫描线加主席树即可。
然后发现,建虚点会使答案不对,故只构造结构而不建边。
回顾 tarjan
求割点的过程,树边递归完后执行
l
o
w
y
→
l
o
w
x
low_y\to low_x
lowy→lowx;返租边执行
d
f
n
y
→
l
o
w
x
dfn_y\to low_x
dfny→lowx。
对于树边,每次在线段树上找没有更新 d f n dfn dfn 的节点,然后更新 l o w low low 即可。
对于返租边,求出边的 d f n dfn dfn 最小值即可。
时间复杂度均摊 O ( n log n ) \mathcal O(n \log n) O(nlogn)。