CF576E Painting Edges
我们注意到这是个动态问题,且不容易直接解决,考虑怎么把它变成静态问题。
考虑 CDQ 分治,发现没有卵用,一方面因为 CDQ 分治要求各操作对询问贡献独立,然而我们的任一单独操作都不会对询问产生贡献,只有若干操作合并到一起时才可能产生贡献;另一方面,这个题要求某种意义上的在线(不过 CDQ 好像也可以,中序遍历)。
所以说,我们在询问时需要知道当前时间的操作集合 \(S\),要支持插入、删除、查询三种操作。
考虑线段树分治,使用支持撤销的并查集维护询问。每次查询结束之后,倘若该操作不能被执行,并且操作的边之前有颜色,我们把该颜色继续延续到下一次操作之前;否则若该操作能执行,我们到下一次操作之前都加入该操作。

浙公网安备 33010602011771号