loj #3145. 「APIO 2019」桥梁
填坑系列
高级数据结构不好直接维护,暴力的话时间复杂度又太高,于是考虑分块
对于每一个块内的操作,我们将所有边分成在块内修改过的边和没有修改过的边,块内询问按权值从大到小排序。
对于每个询问,先在并查集中加入所有没有修改过的边,这个可以使用类似离线的方法处理;之后我们暴力遍历块内所有修改过的边,得到在这个询问时间之前的这些边的权值,然后将比询问权值大的边加入并查集中,并在查询完答案之后撤销以便进行下一次询问,所以需要可撤销的并查集
处理完块内的所有询问之后,更新所有修改过边的权值,这里为了减少一个\(log\)的时间使用的归并排序
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include