做题记录 26.3.4
QOJ #10202. Exotic … Ancient City
对于一个 \(1\le i\le m\),令 \(C_w\) 表示取 \(n\times i\) 的网格中边权 \(\le w\) 的边构成的子图的连通块数量,则生成树中边权为 \(w\) 的边数量为 \(C_w-C_{w-1}\),从而答案为 \(\sum_w (C_w-C_{w-1})\)
问题转化为给定一个边集,对于每种宽度的子图求出连通块数量
枚举 \(i=1\sim m\),考虑每增加一个时连通块数量的增量
等于 \(n\) 减去新加入的边所产生的连通块合并的数量
受 \(1\sim i-1\) 部分的结构,此时已经有一部分左端点之间形成连通块,之后再次加入边集产生一部分合并
调换两者顺序,并维护此过程导致的增量(增量的增量)
可做到 \(O(n\alpha(n)\omega)\)
\(\textcolor{purple}\odot\) P6242 【模板】线段树 3(区间最值操作、区间历史最值)
模板题
不考虑历史最值,则每个结点维护:最大值,次大值,最大值数量,总和,非最大值加法标记,最大值加法标记
加入历史最值,则额外维护:非最大值加法标记的历史最大值(从上一次下传之后,下同),最大值加法标记的历史最大值
时间复杂度 \(O(m\log^ 2n)\)

浙公网安备 33010602011771号