这是本文档旧的修订版!
无
求求来点cf div1
无
感觉有些浮躁,希望能静下心来,做题的时候更加集中一些。
线段树分治,并查集
球迷j愿意观看球员i的比赛需要满足:j是i的粉丝或者j和j'都是i'的粉丝且j'是i的粉丝。
选择最少的球员进全明星赛,使得所有球迷都愿意观看。且有q次粉丝关系的修改,x是y的粉丝变为不是,x不是y的粉丝变为是,每次修改都会询问。
把球员和粉丝相连,答案即为(n个球员的连通分量个数)- (孤立球员个数),如果有球迷的度为0,则答案为-1。
把每个关系存在的时间划分成线段树上的log个区间,线段树每个节点维护了在这段时间存活的所有边,最后遍历一次线段树即可,因为回溯时需要删边,所以需要用启发式合并的并查集。
最终复杂度为$O(n \log^2 n)$
比赛做得太慢了以至于没有时间写这道题…