2024.10.24 鲜花

多次查询给定集合是否存在任一给定子集

Re:End of a Dream


给定 n 个集合 Snq 组询问,每次给定一个集合 Q,判断其是否包含一个集合 Si

先考虑经典例题 DZY Loves Chinese II

考虑其做法:随机赋值非树边,用返祖边来平衡使其权值为 0,线性基维护。

考虑扩展,发现集合中并不存在一个唯一元素用来平衡,考虑在每个集合中加入一个元素来平衡。

这样单次查询前要加入每个集合的独立元素,就是 O(+) 的,并没有达到输入下限,考虑用可撤销线性基维护,每次就不用加入独立元素了,总复杂度是 O(+q×)

好像 wang54321 有更巧妙的做法,但我和 TA 都忘了,就先这样吧,复杂度是一样的。

P

posted @   5k_sync_closer  阅读(46)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示