CF576E Painting Edges

我们注意到这是个动态问题,且不容易直接解决,考虑怎么把它变成静态问题。

考虑 CDQ 分治,发现没有卵用,一方面因为 CDQ 分治要求各操作对询问贡献独立,然而我们的任一单独操作都不会对询问产生贡献,只有若干操作合并到一起时才可能产生贡献;另一方面,这个题要求某种意义上的在线(不过 CDQ 好像也可以,中序遍历)。

所以说,我们在询问时需要知道当前时间的操作集合 S,要支持插入、删除、查询三种操作。

考虑线段树分治,使用支持撤销的并查集维护询问。每次查询结束之后,倘若该操作不能被执行,并且操作的边之前有颜色,我们把该颜色继续延续到下一次操作之前;否则若该操作能执行,我们到下一次操作之前都加入该操作。

posted @   PYD1  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络
点击右上角即可分享
微信分享提示