首页 > 其他分享 >连通性容斥

连通性容斥

时间:2023-12-04 21:35:10浏览次数:21  
标签:连通 le 连通性 lowbit 容斥 times bigoplus 集合

一种比较牛的东西,典型标志为 \(n \le 18\),计数满足特殊性质而且连通的状物。

[ARC105F]

有一张 \(n\) 个点 \(m\) 条边的简单无向图,问选出一个边集,使得 \(n\) 个点与这些边构成的图连通,并且图是二分图的方案数。

\(1\leq n\leq 17,n-1\leq m\leq \frac{n(n-1)}{2}\)。

通用套路是先不理连通算方案数,设 \(h_S\) 表示有多少条边两端点都在集合 \(S\) 中。

一个图是二分图的充要条件是恰好能将图黑白染色,那我们枚举集合中为黑色的子集,设 \(g_S\) 为图是二分图的方案数。

那么有 $g_S= \displaystyle\sum_{t \subseteq S} 2^{h_S-h_T-h_{S \bigoplus T}} $ 即黑白两色内部不能染色。

接下来剪掉不连通的,这个就是连通性容斥套路,设 \(f_S\) 为最终集合的答案。

我们钦定一个集合 \(S\) 中的最小点为连通块的根,(任意的点都可以,只是最小的点用 \(lowbit\) 方便计算)。

我们枚举当前这个最小点当前所在连通块集合 \(T\),那么它对当 \(S\) 的贡献要减去 \(f_T \times g_{T \bigoplus S}\) 即当前连通块答案乘上不在当前块中任意算边的方案。

所以 \(f_S=g_S -\displaystyle\sum_{T \subset S \or lowbit(T)=lowbit(S)} f_T \times g_{T\bigoplus S}\)

复杂度 \(O(3^n)\)

[ABC321G]

有 \(n\) 个点,给定两个长度为 \(m\) 的序列 \(a_i,b_i\)。

对于一个 \(1\sim m\) 的排列 \(P\),将 \(a_i\) 与 \(b_{P_i}\) 连边后,其权值定义为这 \(n\) 个点 \(m\) 条边所构成的图的连通块个数。

对于所有 \(m!\) 个排列 \(P\),求它们权值的期望值。

\(1 \le n \le 17,1\ \le m \le 10^5\)

典中典之先期望转计数。

还是先啥都不管设 \(ha_S,hb_S\) 分别表示 \(S\) 的子集中有出现了多少 \(a_i,b_i\),设 \(h_S\) 表示只在集合 \(S\) 互相连边的方案数。

显然有 \(h_S=[ha_S=hb_S] ha_S !\),然后使用连通性容斥设 \(g_S\) 表示使得集合 \(S\) 连通的方案数。

和上题类似,\(g_S=h_S-\displaystyle\sum_{T \subset S \or lowbit(T)=lobit(S)}g_T \times h_{T \bigoplus S}\)

接下来设 \(f_S\) 表示集合 \(S\) 所有方案连通块数量之和,仍然需要枚举有集合最小值的子集 \(T\) 作为最后一块加入集合(不钦定要算重)

那么也就有 \(f_S= \displaystyle\sum_{T \subset S \or lowbit(T)=lowbit(S)} g_j \times f_{T \bigoplus S}+g_j \times h_{T\bigoplus S}\)

前后两部分分别代表新加入的连通块对方案数和连通块数量的贡献。

复杂度 \(O(3^n)\)

这种题目需要注意的是枚举子集是否空集以及全集,需要画图慢慢理解一下。

Upd:这种题通过一些神妙的数学手段也许能变得更优,等实力变强了再来补。

标签:连通,le,连通性,lowbit,容斥,times,bigoplus,集合
From: https://www.cnblogs.com/Hanghang007/p/17876041.html

相关文章

  • 反演与容斥 学习笔记
    反演与容斥学习笔记二项式反演函数\(f,g\),有以下结论:\[f_k=\sum_{i=0}^k\binom{k}{i}g_i\Longleftrightarrowg_k=\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}f_i\]证明:考虑右式\[\begin{aligned}&\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}f_k\\=&\sum_{i=0......
  • 自动化ping测网络连通性监测与Excel自动记录
    根据现有提供海量ip进行检测网络质量,如果手动操作那将成为一项很难完成的操作。为了简化这一任务,可以使用Python自动化脚本,利用openpyxl和pythonping库,自动执行ping测试并记录结果到Excel文件。openpyxl:openpyxl是一个用于操作Excel文件的库。它允许你读取、写入和......
  • 第 117 场双周赛(容斥原理,记忆化搜索,排序)
     本题我们采用隔板法+容斥原理来解决合格总方案数=总方案书-不合理的方案数=不考虑limit的方案数-不合法方案数(至少有一个小朋友>limit)任意方案数n个小球放到3个盒子中->n+2个位置,选两个位置放隔板剩下位置放球c(n+2,2)三个小朋友为:甲乙丙小朋友甲(乙丙)>l......
  • 2023牛客暑期多校训练营8 B Bloodline Counter 指数型生成函数 容斥 多项式求逆
    传送门容易想到求出竞赛图上最大环\(\lek\)的数量,再求出\(\lek-1\)的数量作差即可得到答案。设指数型生成函数\(G(x)\)表示大小为\(i\)的环的方案数。\(G(x)=\sum_{i=1}^k\frac{a_i}{i!}x^i\)那么最大环\(\lek\)的数量\(=[x^n]n!\sum_{i=1}^ki!\frac{(G(x))^i}{i!}\)这里......
  • codeforces 1829G. Hits Different 容斥原理+记忆化搜索
    题目描述:给定一个n,把n给打倒,然后递归的求出包含n在内的上面所有的会倒下的瓶子值的平方和。这里使用二分先求出目前给定的n的行号i和列号j。观察可以发现,对于所有的列号j,j=1或者j=i时,是需要考虑往上单边的总和,其他情况都有两个分支。再观察可以发现,两个分支在再上一行的重合部......
  • 容斥与简单反演乱写
    #defineTBDToBeDone......
  • WGCLOUD体验 - 监测数据库的连通性
    WGCLOUD是一款运维监测平台,可以监测服务器、主机、数据库、服务接口、网络设备等资源我是一名DBA,日常工作中,主要关注数据库方面的监测情况,正好WGCLOUD有一个模块可以检测数据库是否能连通,如果发现不能连通,会立刻发送告警通知(可以用邮件、钉钉、wx等方式)如下WGCLOUD不但可以检测数据......
  • #dp,二项式反演,容斥#CF285E Positions in Permutations
    题目问有多少个长度为\(n\)的排列\(P\)满足\(|P_i-i|=1\)的\(i\)的个数恰好为\(k\)个分析设\(dp_{i,j,k}\)表示前\(i\)个数钦定\(j\)个数满足上述条件且现在\(i\)和\(i+1\)因此被占用的方案数。那么第\(i\)个满足上述条件无非就是放入\(i-1\)或者\(......
  • 双连通性
    参考资料:虞皓翔《再谈图连通性相关算法》......
  • 连通性与 Tarjan
    强连通分量和Tarjan强连通分量(StronglyConnectedComponents,SCC),指的是极大的连通子图。tarjan算法,用于求图的强连通分量。dfs生成树有向图的dfs生成树大致分为四种边:树边(treeedge):示意图中以黑色边表示,每次搜索找到一个还没有访问过的结点的时候就形成了一条树边......