连通性容斥
一种比较牛的东西,典型标志为 ,计数满足特殊性质而且连通的状物。
有一张 个点 条边的简单无向图,问选出一个边集,使得 个点与这些边构成的图连通,并且图是二分图的方案数。
。
通用套路是先不理连通算方案数,设 表示有多少条边两端点都在集合 中。
一个图是二分图的充要条件是恰好能将图黑白染色,那我们枚举集合中为黑色的子集,设 为图是二分图的方案数。
那么有 即黑白两色内部不能染色。
接下来剪掉不连通的,这个就是连通性容斥套路,设 为最终集合的答案。
我们钦定一个集合 中的最小点为连通块的根,(任意的点都可以,只是最小的点用 方便计算)。
我们枚举当前这个最小点当前所在连通块集合 ,那么它对当 的贡献要减去 即当前连通块答案乘上不在当前块中任意算边的方案。
所以
复杂度
有 个点,给定两个长度为 的序列 。
对于一个 的排列 ,将 与 连边后,其权值定义为这 个点 条边所构成的图的连通块个数。
对于所有 个排列 ,求它们权值的期望值。
典中典之先期望转计数。
还是先啥都不管设 分别表示 的子集中有出现了多少 ,设 表示只在集合 互相连边的方案数。
显然有 ,然后使用连通性容斥设 表示使得集合 连通的方案数。
和上题类似,
接下来设 表示集合 所有方案连通块数量之和,仍然需要枚举有集合最小值的子集 作为最后一块加入集合(不钦定要算重)
那么也就有
前后两部分分别代表新加入的连通块对方案数和连通块数量的贡献。
复杂度
这种题目需要注意的是枚举子集是否空集以及全集,需要画图慢慢理解一下。
Upd:这种题通过一些神妙的数学手段也许能变得更优,等实力变强了再来补。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具